Tarkir: Dragonstorm (TDM) update

Maccros for artifact tokens update
Added cards from TDM and TDC
Bug fixes on exert
Changelings have Every Creature Type but should esclude certain types present on creatures like Clue, Equipment, Food, and Treasure
Cards like Prized Unicorn with abilities=lure prevented the opponent from blocking even if Prized Unicorn was not attacking.
Fixed:
Lure stops from blocking even if the creature with lure is not attacking.
Exerted Creatures Can Be Untapped By Clicking On Them.
This commit is contained in:
Eduardo MG
2025-04-29 22:05:54 -06:00
parent 9cd1fa5757
commit f93bcb32ef
9 changed files with 3554 additions and 109 deletions
+300 -6
View File
@@ -81829,9 +81829,152 @@ DFT;690489t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7a
DFT;689860t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg DFT;689860t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg
DFT;690420t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg DFT;690420t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg
DFT;689948t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg DFT;689948t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg
DFT;690553t;https://cards.scryfall.io/large/front/3/4/343d2622-a5a6-4195-ab41-c6bd17e334a2.jpg DFT;690475t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690422t;https://cards.scryfall.io/large/front/3/4/343d2622-a5a6-4195-ab41-c6bd17e334a2.jpg DFT;690685t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689967t;https://cards.scryfall.io/large/front/3/4/343d2622-a5a6-4195-ab41-c6bd17e334a2.jpg DFT;692075t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690686t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692076t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690552t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689776t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689966t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689692t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690638t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690561t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690562t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690640t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689597t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689991t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690522t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689774t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689960t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689690t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690523t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692065t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690642t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690481t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690568t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690570t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689511t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689973t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689463t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690528t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690571t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689778t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689974t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690572t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690455t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690457t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690650t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689599t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689996t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690534t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689877t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692077t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690013t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690535t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690459t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690576t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690460t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689858t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689941t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690612t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690461t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690676t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690539t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690659t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689601t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690003t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690499t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690681t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690544t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690469t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690542t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689775t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689964t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689691t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690510t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689590t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689954t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690683t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690666t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690006t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690475t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690685t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692075t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690686t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692076t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690552t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689776t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689966t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689692t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690638t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690561t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690562t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690640t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689597t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689991t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690522t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689774t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689960t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689690t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690523t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692065t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690642t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690481t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690568t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690570t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689511t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689973t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689463t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690528t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690571t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689778t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689974t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690572t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690455t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690457t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690650t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689599t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689996t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690534t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689877t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692077t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690013t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690535t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690459t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690576t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690460t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689858t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689941t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690612t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690461t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690676t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690539t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690659t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689601t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690003t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690499t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690681t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690544t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690469t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690542t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689775t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689964t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689691t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690510t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689590t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689954t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690683t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690666t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690006t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690513t;https://cards.scryfall.io/large/front/8/6/8672d795-04f9-4089-9c92-6d6ff628da12.jpg DFT;690513t;https://cards.scryfall.io/large/front/8/6/8672d795-04f9-4089-9c92-6d6ff628da12.jpg
DFT;690633t;https://cards.scryfall.io/large/front/8/6/8672d795-04f9-4089-9c92-6d6ff628da12.jpg DFT;690633t;https://cards.scryfall.io/large/front/8/6/8672d795-04f9-4089-9c92-6d6ff628da12.jpg
DFT;690690t;https://cards.scryfall.io/large/front/8/6/8672d795-04f9-4089-9c92-6d6ff628da12.jpg DFT;690690t;https://cards.scryfall.io/large/front/8/6/8672d795-04f9-4089-9c92-6d6ff628da12.jpg
@@ -81915,9 +82058,152 @@ DFT;690489t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7a
DFT;689860t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg DFT;689860t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg
DFT;690420t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg DFT;690420t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg
DFT;689948t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg DFT;689948t;https://cards.scryfall.io/large/front/a/3/a3803365-ed78-409f-8ca5-7aa3634faf76.jpg
DFT;690553t;https://cards.scryfall.io/large/front/3/4/343d2622-a5a6-4195-ab41-c6bd17e334a2.jpg DFT;690475t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690422t;https://cards.scryfall.io/large/front/3/4/343d2622-a5a6-4195-ab41-c6bd17e334a2.jpg DFT;690685t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689967t;https://cards.scryfall.io/large/front/3/4/343d2622-a5a6-4195-ab41-c6bd17e334a2.jpg DFT;692075t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690686t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692076t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690552t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689776t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689966t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689692t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690638t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690561t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690562t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690640t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689597t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689991t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690522t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689774t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689960t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689690t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690523t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692065t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690642t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690481t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690568t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690570t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689511t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689973t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689463t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690528t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690571t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689778t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689974t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690572t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690455t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690457t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690650t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689599t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689996t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690534t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689877t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692077t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690013t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690535t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690459t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690576t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690460t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689858t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689941t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690612t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690461t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690676t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690539t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690659t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689601t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690003t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690499t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690681t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690544t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690469t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690542t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689775t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689964t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689691t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690510t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689590t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689954t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690683t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690666t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690006t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690475t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690685t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692075t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690686t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692076t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690552t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689776t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689966t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689692t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690638t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690561t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690562t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690640t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689597t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689991t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690522t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689774t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689960t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689690t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690523t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692065t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690642t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690481t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690568t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690570t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689511t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689973t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689463t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690528t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690571t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689778t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689974t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690572t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690455t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690457t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690650t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689599t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689996t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690534t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690694t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689877t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;692077t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690013t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690535t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690459t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690576t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690460t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689858t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689941t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690612t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690461t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690676t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690539t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690659t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689601t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690003t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690499t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690681t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690544t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690469t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690542t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689775t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689964t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689691t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690510t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689590t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689954t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690683t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690666t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;689604t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690006t;https://cards.scryfall.io/large/front/8/2/82613de6-ed37-48c1-8d2f-d91a3f496794.jpg
DFT;690438;https://cards.scryfall.io/large/front/d/7/d77c8e29-de24-4664-baf8-959608dd99ca.jpg DFT;690438;https://cards.scryfall.io/large/front/d/7/d77c8e29-de24-4664-baf8-959608dd99ca.jpg
DFT;690439;https://cards.scryfall.io/large/front/d/3/d39f7f98-ad5e-4e5e-9f7b-abe0984ffe17.jpg DFT;690439;https://cards.scryfall.io/large/front/d/3/d39f7f98-ad5e-4e5e-9f7b-abe0984ffe17.jpg
DFT;690440;https://cards.scryfall.io/large/front/9/9/991270fa-a391-4c2e-bd9a-19151386fb67.jpg DFT;690440;https://cards.scryfall.io/large/front/9/9/991270fa-a391-4c2e-bd9a-19151386fb67.jpg
@@ -82734,6 +83020,8 @@ TDC;696279t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b
TDC;696190t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696190t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;696462t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696462t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;696292t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696292t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;695976t;https://cards.scryfall.io/large/front/9/b/9b154f90-cc26-4e45-b751-854e2017cd40.jpg
TDC;695816t;https://cards.scryfall.io/large/front/9/b/9b154f90-cc26-4e45-b751-854e2017cd40.jpg
TDC;696299t;https://cards.scryfall.io/large/front/e/8/e83a33d7-b5ff-4a9e-8be4-10a46771f44b.jpg TDC;696299t;https://cards.scryfall.io/large/front/e/8/e83a33d7-b5ff-4a9e-8be4-10a46771f44b.jpg
TDC;696331t;https://cards.scryfall.io/large/front/0/2/02c73185-3062-4801-8ab2-5006b9c3b232.jpg TDC;696331t;https://cards.scryfall.io/large/front/0/2/02c73185-3062-4801-8ab2-5006b9c3b232.jpg
TDC;696349t;https://cards.scryfall.io/large/front/3/f/3f1092e1-c7c0-4ea6-8128-eb7069783747.jpg TDC;696349t;https://cards.scryfall.io/large/front/3/f/3f1092e1-c7c0-4ea6-8128-eb7069783747.jpg
@@ -82772,6 +83060,8 @@ TDC;696279t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b
TDC;696190t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696190t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;696462t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696462t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;696292t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696292t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;695976t;https://cards.scryfall.io/large/front/9/b/9b154f90-cc26-4e45-b751-854e2017cd40.jpg
TDC;695816t;https://cards.scryfall.io/large/front/9/b/9b154f90-cc26-4e45-b751-854e2017cd40.jpg
TDC;696299t;https://cards.scryfall.io/large/front/e/8/e83a33d7-b5ff-4a9e-8be4-10a46771f44b.jpg TDC;696299t;https://cards.scryfall.io/large/front/e/8/e83a33d7-b5ff-4a9e-8be4-10a46771f44b.jpg
TDC;696331t;https://cards.scryfall.io/large/front/0/2/02c73185-3062-4801-8ab2-5006b9c3b232.jpg TDC;696331t;https://cards.scryfall.io/large/front/0/2/02c73185-3062-4801-8ab2-5006b9c3b232.jpg
TDC;696349t;https://cards.scryfall.io/large/front/3/f/3f1092e1-c7c0-4ea6-8128-eb7069783747.jpg TDC;696349t;https://cards.scryfall.io/large/front/3/f/3f1092e1-c7c0-4ea6-8128-eb7069783747.jpg
@@ -82815,6 +83105,7 @@ TDC;695780t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bb
TDC;696361t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg TDC;696361t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg
TDC;696376t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg TDC;696376t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg
TDC;695725t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg TDC;695725t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg
TDC;696388t;https://cards.scryfall.io/large/front/e/2/e265ca24-96c0-4654-a8f3-bbffe288970a.jpg
TDC;695964t;https://cards.scryfall.io/large/front/7/e/7edc0515-a130-45a7-aa09-0e23bba41587.jpg TDC;695964t;https://cards.scryfall.io/large/front/7/e/7edc0515-a130-45a7-aa09-0e23bba41587.jpg
TDC;695804t;https://cards.scryfall.io/large/front/7/e/7edc0515-a130-45a7-aa09-0e23bba41587.jpg TDC;695804t;https://cards.scryfall.io/large/front/7/e/7edc0515-a130-45a7-aa09-0e23bba41587.jpg
TDC;695946t;https://cards.scryfall.io/large/front/7/e/7edc0515-a130-45a7-aa09-0e23bba41587.jpg TDC;695946t;https://cards.scryfall.io/large/front/7/e/7edc0515-a130-45a7-aa09-0e23bba41587.jpg
@@ -82847,6 +83138,8 @@ TDC;696279t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b
TDC;696190t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696190t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;696462t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696462t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;696292t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg TDC;696292t;https://cards.scryfall.io/large/front/6/3/639b70ba-a421-47aa-b356-3b261444e79a.jpg
TDC;695976t;https://cards.scryfall.io/large/front/9/b/9b154f90-cc26-4e45-b751-854e2017cd40.jpg
TDC;695816t;https://cards.scryfall.io/large/front/9/b/9b154f90-cc26-4e45-b751-854e2017cd40.jpg
TDC;696299t;https://cards.scryfall.io/large/front/e/8/e83a33d7-b5ff-4a9e-8be4-10a46771f44b.jpg TDC;696299t;https://cards.scryfall.io/large/front/e/8/e83a33d7-b5ff-4a9e-8be4-10a46771f44b.jpg
TDC;696331t;https://cards.scryfall.io/large/front/0/2/02c73185-3062-4801-8ab2-5006b9c3b232.jpg TDC;696331t;https://cards.scryfall.io/large/front/0/2/02c73185-3062-4801-8ab2-5006b9c3b232.jpg
TDC;696349t;https://cards.scryfall.io/large/front/3/f/3f1092e1-c7c0-4ea6-8128-eb7069783747.jpg TDC;696349t;https://cards.scryfall.io/large/front/3/f/3f1092e1-c7c0-4ea6-8128-eb7069783747.jpg
@@ -83101,6 +83394,7 @@ TDC;696384;https://cards.scryfall.io/large/front/e/a/eac89f5e-6331-4f4a-b0b4-bc9
TDC;696385;https://cards.scryfall.io/large/front/1/0/1098504a-977a-4733-a1ee-086461113a84.jpg TDC;696385;https://cards.scryfall.io/large/front/1/0/1098504a-977a-4733-a1ee-086461113a84.jpg
TDC;696386;https://cards.scryfall.io/large/front/c/d/cd44f295-c4c8-4f47-9d51-d5ba578f7f8d.jpg TDC;696386;https://cards.scryfall.io/large/front/c/d/cd44f295-c4c8-4f47-9d51-d5ba578f7f8d.jpg
TDC;696387;https://cards.scryfall.io/large/front/c/c/cc36705f-9b1a-42fe-bebd-f23c7af8a368.jpg TDC;696387;https://cards.scryfall.io/large/front/c/c/cc36705f-9b1a-42fe-bebd-f23c7af8a368.jpg
TDC;696388;https://cards.scryfall.io/large/front/a/2/a2d3ddb9-ddfb-4ca9-ae77-cf691d385a4a.jpg
TDC;696389;https://cards.scryfall.io/large/front/a/3/a373c35e-a54a-4dae-a527-e94dfb10230a.jpg TDC;696389;https://cards.scryfall.io/large/front/a/3/a373c35e-a54a-4dae-a527-e94dfb10230a.jpg
TDC;696390;https://cards.scryfall.io/large/front/5/f/5fb4fa09-2864-4973-aa49-088043f6a6d1.jpg TDC;696390;https://cards.scryfall.io/large/front/5/f/5fb4fa09-2864-4973-aa49-088043f6a6d1.jpg
TDC;696391;https://cards.scryfall.io/large/front/1/b/1b8c1345-4279-4e29-b58c-efacccb8e47f.jpg TDC;696391;https://cards.scryfall.io/large/front/1/b/1b8c1345-4279-4e29-b58c-efacccb8e47f.jpg
Can't render this file because it is too large.
+5
View File
@@ -1145,6 +1145,11 @@ id=696387
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Siege-Gang Commander
id=696388
rarity=R
[/card]
[card]
primitive=Skarrgan Hellkite primitive=Skarrgan Hellkite
id=696389 id=696389
rarity=M rarity=M
@@ -375,13 +375,13 @@
#AUTO_DEFINE _ZOMBIETOKEN_ create(zombie:creature zombie:2/2:black) #AUTO_DEFINE _ZOMBIETOKEN_ create(zombie:creature zombie:2/2:black)
# Clue Token # Clue Token
#AUTO_DEFINE _CLUE_ token(Clue,Clue Artifact,0/0) and!( transforms((,newability[{2}{S}:draw:1])) forever )! #AUTO_DEFINE _CLUE_ token(Clue^Clue Artifact^0/0) and!( transforms((,newability[{2}{S}:draw:1])) forever )!
# Food Token # Food Token
#AUTO_DEFINE _FOOD_ token(Food,Food Artifact,0/0) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! #AUTO_DEFINE _FOOD_ token(Food^Food Artifact^0/0) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )!
# Treasure Token # Treasure Token
#AUTO_DEFINE _TREASURE_ token(Treasure,Treasure Artifact,0/0) and!( transforms((,newability[{T}{S}:Add{W}],newability[{T}{S}:Add{U}],newability[{T}{S}:Add{B}],newability[{T}{S}:Add{R}],newability[{T}{S}:Add{G}])) forever )! #AUTO_DEFINE _TREASURE_ token(Treasure^Treasure Artifact^0/0) and!( transforms((,newability[{T}{S}:Add{W}],newability[{T}{S}:Add{U}],newability[{T}{S}:Add{B}],newability[{T}{S}:Add{R}],newability[{T}{S}:Add{G}])) forever )!
# Vehicle Token # Vehicle Token
#AUTO_DEFINE _VEHICLE_ token(Vehicle,Artifact Vehicle,3/2) and!( transforms((,newability[{crew(other creature[power>=1]|myBattlefield)}:name(crew 1 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~0}])) forever )! #AUTO_DEFINE _VEHICLE_ token(Vehicle^Artifact Vehicle^3/2) and!( transforms((,newability[{crew(other creature[power>=1]|myBattlefield)}:name(crew 1 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~0}])) forever )!
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -114,7 +114,7 @@ type=Instant
[card] [card]
name=Abhorrent Overlord name=Abhorrent Overlord
abilities=flying abilities=flying
auto=token(Harpy,creature harpy, 1/1,black,flying)*type:manaB auto=create(Harpy:creature harpy:1/1:black:flying)*type:manaB
auto=@each my upkeep:sacrifice notaTarget(creature|myBattlefield) auto=@each my upkeep:sacrifice notaTarget(creature|myBattlefield)
text=Flying. -- When Abhorrent Overlord enters, put a number of 1/1 black Harpy creature tokens with flying onto the battlefield equal to your devotion to black. (Each {B} in the mana costs of permanents you control counts toward your devotion to black.) -- At the beginning of your upkeep, sacrifice a creature. text=Flying. -- When Abhorrent Overlord enters, put a number of 1/1 black Harpy creature tokens with flying onto the battlefield equal to your devotion to black. (Each {B} in the mana costs of permanents you control counts toward your devotion to black.) -- At the beginning of your upkeep, sacrifice a creature.
mana={5}{B}{B} mana={5}{B}{B}
@@ -2758,7 +2758,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Allied Reinforcements name=Allied Reinforcements
auto=token(Knight,creature Knight Ally, 2/2,white)*2 auto=token(Knight,creature Knight Ally,2/2,white)*2
text=Put two 2/2 white Knight Ally creature tokens onto the battlefield. text=Put two 2/2 white Knight Ally creature tokens onto the battlefield.
mana={3}{W} mana={3}{W}
type=Sorcery type=Sorcery
@@ -10048,7 +10048,7 @@ subtype=Aura
[/card] [/card]
[card] [card]
name=Bear's Companion name=Bear's Companion
auto=token(Bear,Creature Bear, 4/4,green) auto=token(Bear,Creature Bear,4/4,green)
text=When Bear's Companion enters, put a 4/4 green Bear creature token onto the battlefield. text=When Bear's Companion enters, put a 4/4 green Bear creature token onto the battlefield.
mana={2}{G}{U}{R} mana={2}{G}{U}{R}
type=Creature type=Creature
@@ -10075,7 +10075,7 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Beast Attack name=Beast Attack
auto=token(Beast,creature beast, 4/4,green) auto=token(Beast,creature beast,4/4,green)
flashback={2}{G}{G}{G} flashback={2}{G}{G}{G}
text=Put a 4/4 green Beast creature token onto the battlefield. -- Flashback {2}{G}{G}{G} (You may cast this card from your graveyard for its flashback cost. Then exile it.) text=Put a 4/4 green Beast creature token onto the battlefield. -- Flashback {2}{G}{G}{G} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={2}{G}{G}{G} mana={2}{G}{G}{G}
@@ -60507,7 +60507,7 @@ type=Sorcery
name=Jokulmorder name=Jokulmorder
abilities=trample,doesnotuntap abilities=trample,doesnotuntap
auto=tap(noevent) auto=tap(noevent)
auto=aslongas(land|mybattlefield) choice target(<5>land|mybattlefield) sacrifice oneshot >4 auto=aslongas(land|mybattlefield) choice name() name(sacrifice five lands) notaTarget(<5>land|mybattlefield) sacrifice oneshot >4
auto=choice sacrifice all(this) auto=choice sacrifice all(this)
auto=@movedTo(island|mybattlefield):untap auto=@movedTo(island|mybattlefield):untap
text=Trample -- Jokulmorder enters tapped. -- When Jokulmorder enters, sacrifice it unless you sacrifice five lands. -- Jokulmorder doesn't untap during your untap step. -- Whenever you play an Island, you may untap Jokulmorder. text=Trample -- Jokulmorder enters tapped. -- When Jokulmorder enters, sacrifice it unless you sacrifice five lands. -- Jokulmorder doesn't untap during your untap step. -- Whenever you play an Island, you may untap Jokulmorder.
@@ -89637,7 +89637,7 @@ type=Instant
[card] [card]
name=Pulse of the Dross name=Pulse of the Dross
target=player target=player
auto=Reveal:3 revealzone(targetedpersonshand) optionone choice name(choose Discards) target(<1>*|reveal) transforms((,newability[moveto(hand) and!(reject)!])) oneshot optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) oneshot optiontwoend afterrevealed if type(*|myhand)~lessthan~type(*|opponenthand) then moveto(hand) all(this) afterrevealedend revealend auto=Reveal:3 revealzone(targetedpersonshand) optionone choice name(choose Discards) target(<1>*|reveal) transforms((,newability[moveto(hand) and!(reject)!])) oneshot optiononeend optiontwo name(Put Back) all(*|reveal) moveto(hand) optiontwoend afterrevealed if type(*|myhand)~lessthan~type(*|opponenthand) then moveto(hand) all(this) afterrevealedend revealend
text=Target player reveals three cards from their hand and you choose one of them. That player discards that card. Then if that player has more cards in hand than you, return Pulse of the Dross to its owner's hand. text=Target player reveals three cards from their hand and you choose one of them. That player discards that card. Then if that player has more cards in hand than you, return Pulse of the Dross to its owner's hand.
mana={1}{B}{B} mana={1}{B}{B}
type=Sorcery type=Sorcery
@@ -1,6 +1,6 @@
#Planeswalkers Primitives Pack for Wagic the Homebrew. #Planeswalkers Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#Sorted this programmatically - Thanks to Vitty85 28-03-2024 #Sorted this programmatically - Thanks to Vitty85 29-04-2024
[card] [card]
name=Abian, Luvion Usurper name=Abian, Luvion Usurper
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
@@ -983,6 +983,18 @@ type=Legendary Planeswalker
subtype=Elspeth subtype=Elspeth
[/card] [/card]
[card] [card]
name=Elspeth, Storm Slayer
auto=counter(0/0,5,loyalty)
auto=@tokencreated(*|myBattlefield):name(Double the token) all(trigger) clone options(notrigger)
auto={C(0/0,+1,Loyalty)}:create(soldier:creature soldier:1/1:white)
auto={C(0/0,0,Loyalty)}:all(creature|myBattlefield) counter(1/1) && flying uynt
auto={C(0/0,-3,Loyalty)}:destroy target(creature[manacost>=3]|opponentBattlefield)
text=If one or more tokens would be created under your control, twice that many of those tokens are created instead. -- [+1]: Create a 1/1 white Soldier creature token. -- [0]: Put a +1/+1 counter on each creature you control. Those creatures gain flying until your next turn. -- [-3]: Destroy target creature an opponent controls with mana value 3 or greater.
mana={3}{W}{W}
type=Legendary Planeswalker
subtype=Elspeth
[/card]
[card]
name=Elspeth, Sun's Champion name=Elspeth, Sun's Champion
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create three 1/1 Soldier) _SOLDIERTOKEN_*3 auto={C(0/0,1,Loyalty)}:name(+1: Create three 1/1 Soldier) _SOLDIERTOKEN_*3
@@ -3654,6 +3666,19 @@ type=Legendary Planeswalker
subtype=Tyvar subtype=Tyvar
[/card] [/card]
[card] [card]
name=Ugin, Eye of the Storms
auto=counter(0/0,7,loyalty)
autostack=may moveTo(exile) target(*[white;blue;black;red;green])
auto=@movedTo(*[colorless]|mystack):may moveTo(exile) target(*[white;blue;black;red;green])
auto={C(0/0,+2,Loyalty)}:life:3 && draw:1
auto={C(0/0,0,Loyalty)}:Add{C}{C}{C}
auto={C(0/0,-11,Loyalty)}:target(<anyAmount>*[colorless]|myLibrary) moveTo(exile) and!( transforms((,newability[zerocast],newability[canplayfromexile])) ueot )!
text=When you cast this spell, exile up to one target permanent that's one or more colors. -- Whenever you cast a colorless spell, exile up to one target permanent that's one or more colors. -- [+2]: You gain 3 life and draw a card. -- [0]: Add {C}{C}{C}. -- [-11]: Search your library for any number of colorless nonland cards, exile them, then shuffle. Until end of turn, you may cast those cards without paying their mana costs.
mana={7}
type=Legendary Planeswalker
subtype=Ugin
[/card]
[card]
name=Ugin, the Ineffable name=Ugin, the Ineffable
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto=lord(*[colorless]|mycastingzone) altercost(colorless,-2) auto=lord(*[colorless]|mycastingzone) altercost(colorless,-2)
@@ -3720,7 +3745,7 @@ subtype=Venser
name=Vivien Reid name=Vivien Reid
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
aicode=activate moveto(myhand) target(*[creature;land;zpos<=4]|mylibrary) aicode=activate moveto(myhand) target(*[creature;land;zpos<=4]|mylibrary)
auto={C(0/0,+1,Loyalty)}:name(+1: Look four and put creature or land in hand) name(look) reveal:4 optionone name(Get a creature or land) target(<1>*[creature;land]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend auto={C(0/0,+1,Loyalty)}:name(+1: Look four and put creature or land in hand) name(look) reveal:4 optionone name(Get a creature or land) target(<1>*[creature;land]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend
auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target artifact) destroy target(artifact) auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target artifact) destroy target(artifact)
auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target enchantment) destroy target(enchantment) auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target enchantment) destroy target(enchantment)
auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target creature with flying) destroy target(creature[flying]) auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target creature with flying) destroy target(creature[flying])
+139 -49
View File
@@ -4075,13 +4075,6 @@ bool AIPlayerBaka::shouldAIForceAttack(MTGCardInstance* card, bool globalAttack)
bool oppHasBlackOrArtifact = false; bool oppHasBlackOrArtifact = false;
bool oppHasMatchingColorOrArtifact = false; bool oppHasMatchingColorOrArtifact = false;
// Flags for landwalk checks
bool oppHasSwamp = opponent()->game->inPlay->hasType("Swamp");
bool oppHasIsland = opponent()->game->inPlay->hasType("Island");
bool oppHasForest = opponent()->game->inPlay->hasType("Forest");
bool oppHasMountain = opponent()->game->inPlay->hasType("Mountain");
bool oppHasPlains = opponent()->game->inPlay->hasType("Plains");
MTGCardInstance* oppCard = NULL; MTGCardInstance* oppCard = NULL;
CardDescriptor desc; CardDescriptor desc;
desc.init(); desc.init();
@@ -4116,11 +4109,11 @@ bool AIPlayerBaka::shouldAIForceAttack(MTGCardInstance* card, bool globalAttack)
return true; return true;
// Landwalk abilities // Landwalk abilities
if ((card->has(Constants::SWAMPWALK) && oppHasSwamp) || if ((card->has(Constants::SWAMPWALK) && opponent()->game->inPlay->hasType("Swamp")) ||
(card->has(Constants::ISLANDWALK) && oppHasIsland) || (card->has(Constants::ISLANDWALK) && opponent()->game->inPlay->hasType("Island")) ||
(card->has(Constants::FORESTWALK) && oppHasForest) || (card->has(Constants::FORESTWALK) && opponent()->game->inPlay->hasType("Forest")) ||
(card->has(Constants::MOUNTAINWALK) && oppHasMountain) || (card->has(Constants::MOUNTAINWALK) && opponent()->game->inPlay->hasType("Mountain")) ||
(card->has(Constants::PLAINSWALK) && oppHasPlains)) (card->has(Constants::PLAINSWALK) && opponent()->game->inPlay->hasType("Plains")))
return true; return true;
return false; return false;
@@ -4147,14 +4140,17 @@ int AIPlayerBaka::chooseBlockers()
//Should not block during my own turn... //Should not block during my own turn...
if (observer->currentPlayer == this) if (observer->currentPlayer == this)
return 0; return 0;
map<MTGCardInstance *, int> opponentsToughness;
map<MTGCardInstance*, int> opponentsToughness;
int opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER); int opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER);
//Initialize the list of opponent's attacking cards toughness //Initialize the list of opponent's attacking cards toughness
CardDescriptor cdAttackers; CardDescriptor cdAttackers;
cdAttackers.init(); cdAttackers.init();
cdAttackers.setType("Creature"); cdAttackers.setType("Creature");
MTGCardInstance * card = NULL; MTGCardInstance* card = NULL;
// Gather all attacking creatures and store their toughness
while ((card = cdAttackers.nextmatch(opponent()->game->inPlay, card))) while ((card = cdAttackers.nextmatch(opponent()->game->inPlay, card)))
{ {
if (card->isAttacker()) if (card->isAttacker())
@@ -4168,11 +4164,12 @@ int AIPlayerBaka::chooseBlockers()
cd.unsecureSetTapped(-1); cd.unsecureSetTapped(-1);
card = NULL; card = NULL;
// We first try to block the major threats, those that are marked in the Top 3 of our stats // First pass: auto-block top 3 threats if can be killed
while ((card = cd.nextmatch(game->inPlay, card))) while ((card = cd.nextmatch(game->inPlay, card)))
{ {
if(hints && hints->HintSaysDontBlock(observer,card)) if (hints && hints->HintSaysDontBlock(observer, card))
continue; continue;
observer->cardClick(card, MTGAbility::MTG_BLOCK_RULE); observer->cardClick(card, MTGAbility::MTG_BLOCK_RULE);
int set = 0; int set = 0;
while (!set) while (!set)
@@ -4183,8 +4180,8 @@ int AIPlayerBaka::chooseBlockers()
} }
else else
{ {
MTGCardInstance * attacker = card->defenser; MTGCardInstance* attacker = card->defenser;
map<MTGCardInstance *, int>::iterator it = opponentsToughness.find(attacker); map<MTGCardInstance*, int>::iterator it = opponentsToughness.find(attacker);
if (it == opponentsToughness.end()) if (it == opponentsToughness.end())
{ {
opponentsToughness[attacker] = attacker->toughness; opponentsToughness[attacker] = attacker->toughness;
@@ -4199,7 +4196,7 @@ int AIPlayerBaka::chooseBlockers()
{ {
if (card->blockCost) if (card->blockCost)
{ {
MTGAbility * a = observer->mLayers->actionLayer()->getAbility(MTGAbility::BLOCK_COST); MTGAbility* a = observer->mLayers->actionLayer()->getAbility(MTGAbility::BLOCK_COST);
doAbility(a, card); doAbility(a, card);
observer->cardClick(card, MTGAbility::BLOCK_COST); observer->cardClick(card, MTGAbility::BLOCK_COST);
} }
@@ -4209,13 +4206,13 @@ int AIPlayerBaka::chooseBlockers()
} }
} }
//If blocking one of the major threats is not enough to kill it, // Second pass: unassign if attacker is not expected to die
// We change strategy, first we unassign its blockers that where assigned above
card = NULL; card = NULL;
while ((card = cd.nextmatch(game->inPlay, card))) while ((card = cd.nextmatch(game->inPlay, card)))
{ {
if(hints && hints->HintSaysDontBlock(observer,card)) if (hints && hints->HintSaysDontBlock(observer, card))
continue; continue;
if (card->defenser && opponentsToughness[card->defenser] > 0) if (card->defenser && opponentsToughness[card->defenser] > 0)
{ {
while (card->defenser) while (card->defenser)
@@ -4225,48 +4222,141 @@ int AIPlayerBaka::chooseBlockers()
} }
} }
//Assign the "free" potential blockers to attacking creatures that are not blocked enough // Third pass: intelligent blocking
card = NULL; card = NULL;
while ((card = cd.nextmatch(game->inPlay, card))) while ((card = cd.nextmatch(game->inPlay, card)))
{ {
if(hints && hints->HintSaysDontBlock(observer,card)) if (hints && hints->HintSaysDontBlock(observer, card))
continue; continue;
if (!card->defenser) if (card->defenser)
continue;
MTGCardInstance* bestAttacker = NULL;
int bestScore = -1;
for (map<MTGCardInstance*, int>::iterator it = opponentsToughness.begin(); it != opponentsToughness.end(); ++it)
{ {
if (card->blockCost) MTGCardInstance* attacker = it->first;
if (!attacker)
continue;
int currentBlockers = (int)attacker->blockers.size();
int totalAssignedDamage = 0;
list<MTGCardInstance*>::iterator itb;
for (itb = attacker->blockers.begin(); itb != attacker->blockers.end(); ++itb)
{ {
MTGAbility * a = observer->mLayers->actionLayer()->getAbility(MTGAbility::BLOCK_COST); MTGCardInstance* blocker = *itb;
doAbility(a, card); if (blocker)
totalAssignedDamage += blocker->power;
} }
observer->cardClick(card, MTGAbility::MTG_BLOCK_RULE);
int set = 0; int maxBlockers = 1;
while (!set) if (attacker->basicAbilities[Constants::MENACE]) maxBlockers = 2;
if (attacker->basicAbilities[Constants::THREEBLOCKERS]) maxBlockers = 3;
if (totalAssignedDamage >= attacker->toughness || currentBlockers >= maxBlockers)
continue;
bool canKill = (card->power >= attacker->toughness);
bool survives = (card->toughness > attacker->power);
// Always block if can kill, regardless of survivability or damage
if (canKill)
{ {
if (!card->defenser) int score = attacker->power * 2 + attacker->toughness;
if (getStats() && getStats()->isInTop(attacker, 3, false))
score += 100;
if (score > bestScore)
{ {
set = 1; bestScore = score;
bestAttacker = attacker;
} }
else }
// Block even if can't kill, but we survive and reduce damage
else if (survives && attacker->power < life)
{
int score = attacker->power;
if (getStats() && getStats()->isInTop(attacker, 3, false))
score += 50;
if (score > bestScore)
{ {
MTGCardInstance * attacker = card->defenser; bestScore = score;
if (opponentsToughness[attacker] <= 0 || (card->toughness <= attacker->power && opponentForce * 2 < life && !canFirstStrikeKill(card, attacker)) || attacker->nbOpponents() > 1) bestAttacker = attacker;
}
}
// Block to prevent lethal damage, even if we die
else if (!survives && attacker->power >= life)
{
int score = attacker->power;
if (getStats() && getStats()->isInTop(attacker, 3, false))
score += 75;
if (score > bestScore)
{
bestScore = score;
bestAttacker = attacker;
}
}
}
if (bestAttacker)
{
int requiredBlockers = 1;
if (bestAttacker->basicAbilities[Constants::MENACE]) requiredBlockers = 2;
if (bestAttacker->basicAbilities[Constants::THREEBLOCKERS]) requiredBlockers = 3;
int currentBlockers = (int)bestAttacker->blockers.size();
if (currentBlockers >= requiredBlockers)
continue;
vector<MTGCardInstance*> extraBlockers;
if (requiredBlockers > 1)
{
CardDescriptor cd2;
cd2.init();
cd2.setType("Creature");
cd2.unsecureSetTapped(-1);
MTGCardInstance* c2 = NULL;
while ((c2 = cd2.nextmatch(game->inPlay, c2)))
{
if (c2 == card || c2->defenser || (hints && hints->HintSaysDontBlock(observer, c2)))
continue;
int combinedPower = c2->power + card->power;
bool combinedCanKill = (combinedPower >= bestAttacker->toughness);
if (combinedCanKill)
{ {
if (card->blockCost) extraBlockers.push_back(c2);
{ if ((int)extraBlockers.size() + currentBlockers + 1 >= requiredBlockers)
MTGAbility * a = observer->mLayers->actionLayer()->getAbility(MTGAbility::BLOCK_COST); break;
doAbility(a, card);
}
if((!attacker->basicAbilities[Constants::MENACE] && !attacker->basicAbilities[Constants::THREEBLOCKERS]) ||
(attacker->basicAbilities[Constants::MENACE] && attacker->blockers.size() > 2) ||
(attacker->basicAbilities[Constants::THREEBLOCKERS] && attacker->blockers.size() > 3))
observer->cardClick(card, MTGAbility::MTG_BLOCK_RULE);
else
set = 1;
} }
else }
}
if (currentBlockers + (int)extraBlockers.size() + 1 >= requiredBlockers)
{
if (card->blockCost)
{
MTGAbility* a = observer->mLayers->actionLayer()->getAbility(MTGAbility::BLOCK_COST);
doAbility(a, card);
}
observer->cardClick(card, MTGAbility::MTG_BLOCK_RULE);
opponentsToughness[bestAttacker] -= card->power;
for (size_t i = 0; i < extraBlockers.size(); ++i)
{
MTGCardInstance* extra = extraBlockers[i];
if (extra->blockCost)
{ {
set = 1; MTGAbility* a = observer->mLayers->actionLayer()->getAbility(MTGAbility::BLOCK_COST);
doAbility(a, extra);
} }
observer->cardClick(extra, MTGAbility::MTG_BLOCK_RULE);
opponentsToughness[bestAttacker] -= extra->power;
} }
} }
} }
+1 -1
View File
@@ -227,7 +227,7 @@ void Credits::compute(GameObserver* g, GameApp * _app)
if (p1->game->hand->nb_cards == 7) if (p1->game->hand->nb_cards == 7)
{ {
CreditBonus * b = NEW CreditBonus(77, _("'Seven-Tail Mentor' Bonus")); CreditBonus * b = NEW CreditBonus(77, _("'Library of Alexandria' Bonus"));
bonus.push_back(b); bonus.push_back(b);
} }
+10 -5
View File
@@ -347,12 +347,17 @@ void MTGCardInstance::initMTGCI()
data = this; //an MTGCardInstance point to itself for data, allows to update it without killing the underlying database item data = this; //an MTGCardInstance point to itself for data, allows to update it without killing the underlying database item
if (observer && basicAbilities[(int)Constants::CHANGELING]) if (observer && basicAbilities[(int)Constants::CHANGELING])
{//if the card is a changeling, it gains all creature subtypes {
//if the card is a changeling, it gains all creature subtypes except "Equipment"
vector<string> values = MTGAllCards::getCreatureValuesById(); vector<string> values = MTGAllCards::getCreatureValuesById();
for (size_t i = 0; i < values.size(); ++i) for (size_t i = 0; i < values.size(); ++i)
{ {
//Don' want to send any event to the gameObserver inside of initMCGI, so calling the parent setSubtype method instead of mine const string& subtype = values[i];
CardPrimitive::setSubtype(values[i].c_str()); if (subtype == "Clue" || subtype == "Equipment" || subtype == "Food" || subtype == "Treasure")
continue;
// Don't send any event to the gameObserver inside of initMCGI, so calling the parent setSubtype method instead
CardPrimitive::setSubtype(subtype.c_str());
} }
} }
@@ -1147,8 +1152,8 @@ int MTGCardInstance::canBlock(MTGCardInstance * opponent)
return 0; return 0;
if (opponent->basicAbilities[(int)Constants::FEAR] && !(this->hasType(Subtypes::TYPE_ARTIFACT) || this->hasColor(Constants::MTG_COLOR_BLACK))) if (opponent->basicAbilities[(int)Constants::FEAR] && !(this->hasType(Subtypes::TYPE_ARTIFACT) || this->hasColor(Constants::MTG_COLOR_BLACK)))
return 0; return 0;
if (opponent->controller()->game->battlefield->hasAbility(Constants::LURE) && !opponent->has(Constants::LURE)) //if (opponent->controller()->game->battlefield->hasAbility(Constants::LURE) && !opponent->has(Constants::LURE))
return 0; //return 0; Doesn't consider if the lure creature is attacking
//intimidate //intimidate
if (opponent->basicAbilities[(int)Constants::INTIMIDATE] && !(this->hasType(Subtypes::TYPE_ARTIFACT))) if (opponent->basicAbilities[(int)Constants::INTIMIDATE] && !(this->hasType(Subtypes::TYPE_ARTIFACT)))
{ {