108 Commits

Author SHA1 Message Date
Eduardo MG
f9d5620d38 Merge pull request #1143 from BobCyril/master
Updates to decks 51-70
2026-01-26 08:35:05 -06:00
BobCyril
53641fc36c Update deck70.txt
Reformatted; replaced cards AI plays poorly; added hint to support strategy
2026-01-18 21:22:44 +00:00
BobCyril
9bbbb9f7d3 Update deck69.txt
Reformatted; replaced one card AI plays poorly
2026-01-18 21:21:19 +00:00
BobCyril
efbdc741f5 Update deck68.txt
New flavor text
2026-01-18 21:20:12 +00:00
BobCyril
923affb250 Update deck67.txt
Previous deck weakened by splashing R to little effect, so rebuilt as mono-G but on same theme
2026-01-18 21:18:44 +00:00
BobCyril
0c6262f9e2 Update deck66.txt
Previous deck had no wincon, so rebuilt with a better strategy but the same theme; added hints to optimise
2026-01-18 21:16:57 +00:00
BobCyril
c771d84b87 Update deck65.txt
Reformatted; new flavor text
2026-01-18 21:14:52 +00:00
BobCyril
526797d9fe Update deck64.txt
Reformatted; on-theme swaps to remove vanilla cards and reduce deck average CMC
2026-01-18 21:13:42 +00:00
BobCyril
b64746db3b Update deck63.txt
Reformatted; minor swaps to prevent AI damaging itself
2026-01-18 21:12:08 +00:00
BobCyril
c8210b060c Update deck62.txt
Reformatted; minor swaps to improve strategy; reduced lands to prevent mana flood
2026-01-18 21:10:34 +00:00
BobCyril
e61e39ae5a Update deck61.txt
Reformatted; replaced cards AI uses incorrectly
2026-01-18 21:08:49 +00:00
BobCyril
25cbe417be Update deck60.txt
Reformatted; renamed; strengthened strategy with new cards; added hint to control board wipes
2026-01-18 21:07:11 +00:00
BobCyril
2af5a68829 Update deck59.txt
Reformatted; added hints to control board wipes
2026-01-18 21:04:42 +00:00
BobCyril
1bca4097b6 Update deck58.txt
Reformatted; new flavor text
2026-01-18 21:03:27 +00:00
BobCyril
920b475f85 Update deck57.txt
Reformatted; replaced cards AI does not use; added hints to control use of X-cost spells
2026-01-18 21:01:56 +00:00
BobCyril
c6f9a6ec47 Update deck56.txt
New flavor text
2026-01-18 21:00:13 +00:00
BobCyril
dcfce60d16 Update deck55.txt
New flavor text
2026-01-18 20:58:45 +00:00
BobCyril
b6cc8a5d1d Update deck54.txt
Reformatted; renamed; new combo and supporting hints added; hints to prevent AI damaging wasting cards
2026-01-18 20:56:46 +00:00
BobCyril
6705a579d5 Update deck53.txt
Reformatted; minor swaps to reduce deck average CMC
2026-01-18 20:53:46 +00:00
BobCyril
44ece02776 Update deck52.txt
Reformatted; added cast prioity and board wipe hints; added graveyard recursion effects
2026-01-18 20:52:04 +00:00
BobCyril
06cf752317 Update deck51.txt
Reformatted; new cards to fit deck theme; cast priority hint added
2026-01-18 20:48:48 +00:00
Eduardo MG
299883cc2c Bug Fixes in primitives, <loose> is wrong, correct use is <lose>
Sunbillow Verge
Murasa Behemoth
Dreams of the dead
Kenrith, the Returned King
Chart a Course
Explosion of Riches
Djeru and Hazoret
Vodalian Merchant
<loose> is wrong, correct is <lose>
Rampaging Baloths
Kraul Whipcracker
Gulf Squid
2026-01-15 07:34:59 -06:00
Eduardo MG
6e9c8e2cff Merge pull request #1123 from BobCyril/master
Updates to decks 41-50
2025-10-16 08:35:43 -06:00
BobCyril
66050dfda0 Update deck50.txt
Reformatted; renamed; added hints to control board wipes and enchantments
2025-08-30 18:27:16 +01:00
BobCyril
420c83c51e Update deck49.txt
Reformatted; added stronger on-theme cards
2025-08-30 18:24:58 +01:00
BobCyril
f4581b050e Update deck48.txt
Reformatted; swapped out off-theme cards for on-theme cards
2025-08-30 18:20:47 +01:00
BobCyril
6afc968e9e Update deck47.txt
Reformatted; added stronger on-theme cards
2025-08-30 18:18:54 +01:00
BobCyril
f68e04cc3e Update deck46.txt
New flavor text
2025-08-30 18:17:33 +01:00
BobCyril
1e45e3117b Update deck45.txt
Previous deck very weak; replaced with a new deck on the same theme
2025-08-30 18:16:09 +01:00
BobCyril
9149d81b35 Update deck44.txt
Previous deck too similar to deck no.43.  Replaced with a new deck with a new strategy, but retaining the same theme.
2025-08-30 18:14:26 +01:00
BobCyril
09baae5a83 Update deck43.txt
Reformatted; added tutor effects and related hints to improve deck speed; rebalanced mana base
2025-08-30 18:11:50 +01:00
BobCyril
28e3ebf8cd Update deck42.txt
Reformatted; added stronger on-theme cards; added hints to optimise attack phase
2025-08-30 18:09:53 +01:00
BobCyril
ae01e2d3fa Update deck41.txt
Reformatted; added stronger on-theme cards; added hint to optimise enchantments
2025-08-30 18:07:52 +01:00
Eduardo MG
481dcdd608 Merge pull request #1121 from BobCyril/master
Updates to decks 31-40
2025-08-03 15:07:41 -06:00
BobCyril
70ac62a115 Update deck40.txt
Reformatted; swapped out vanilla creatures and replaced with better on-theme options
2025-08-03 18:42:38 +01:00
BobCyril
e53d58581a Update deck39.txt
Reformatted; new flavor text; added hint to prevent AI wasting Ball Lightning
2025-08-03 18:40:18 +01:00
BobCyril
74867af693 Update deck38.txt
Reformatted; new flavor text; added hints to control board wipes
2025-08-03 18:38:24 +01:00
BobCyril
6079710051 Update deck37.txt
Minor change to flavor text
2025-08-03 18:36:48 +01:00
BobCyril
78855eac97 Update deck36.txt
Reformatted; minor changes to mana base to improve deck consistency
2025-08-03 18:35:16 +01:00
BobCyril
c3ff1ff750 Update deck35.txt
Reformatted; changed deck from 4 color to 3 color to improve consistency - previously deck splashed white for limited benefit
2025-08-03 18:33:37 +01:00
BobCyril
4e695cafcb Update deck34.txt
New flavor text
2025-08-03 18:31:07 +01:00
BobCyril
871a6f2279 Update deck33.txt
Reformatted; swapped out non-synergistic cards, and replaced them with on-theme cards
2025-08-03 18:29:49 +01:00
BobCyril
f4e143d0e6 Update deck32.txt
Reformatted; new flavor text
2025-08-03 18:27:34 +01:00
BobCyril
f77f87ef76 Update deck31.txt
Reformatted; renamed; added hints to control boad wipes
2025-08-03 18:26:03 +01:00
Eduardo MG
ac1b571c00 Merge pull request #1118 from BobCyril/master
Updates to decks 21-30
2025-06-30 16:20:22 -06:00
BobCyril
d609199b30 Update deck30.txt
Reformatted; added hints to prevent AI wasting strong cards
2025-06-29 09:06:11 +01:00
BobCyril
91931e0027 Update deck29.txt
Reformatted
2025-06-29 09:04:17 +01:00
BobCyril
ed2ec72ae9 Update deck28.txt
Increased land ratio to improve AI performance
2025-06-29 09:02:06 +01:00
BobCyril
5e995db3c8 Update deck27.txt
Increased land ratio to improve AI performance
2025-06-29 08:59:54 +01:00
BobCyril
9a88c63f95 Update deck26.txt
Added new flavor text
2025-06-29 08:58:20 +01:00
BobCyril
8c369f50f2 Update deck25.txt
New deck to replace previous one which was a poor opponent.  New deck retains the previous deck's theme/flavor
2025-06-29 08:56:28 +01:00
BobCyril
65baa13151 Update deck24.txt
Reformatted
2025-06-29 08:53:01 +01:00
BobCyril
3e92846045 Update deck23.txt
Reformatted; renamed; new cards added to improved AI decision making
2025-06-29 08:49:51 +01:00
BobCyril
267290c522 Update deck22.txt
Replaced previous Giants deck with more challenging one on the same theme
2025-06-29 08:46:29 +01:00
BobCyril
012a5f5e3d Update deck21.txt
Reformatted; swapped out one card to improved AI decisions; renamed to better reflect deck theme
2025-06-29 08:43:20 +01:00
Eduardo MG
a371cef279 Blood macros, more kindred changes
Created a macros for blood token, tribal to kindred changes, typo in background on various files,

Bug fixes:
Fiendslayer Paladin
Dire Fleet Poisoner
Shapers of Nature
Raptor Hatchling
Emiel the Blessed
Path of Discovery
Departed Deckhand
2025-05-26 18:46:55 -06:00
Eduardo MG
9c32793eec Merge pull request #1117 from BobCyril/master
Updates to decks 11-20
2025-05-26 14:33:13 -06:00
BobCyril
4eb4a11e77 Update deck20.txt
Deck reformatted; added hint to control behavior of one card
2025-05-25 16:42:04 +01:00
BobCyril
e007ac478e Update deck19.txt
Deck reformatted; added missing titular card to deck
2025-05-25 16:40:18 +01:00
BobCyril
437386a2ec Update deck18.txt
Deck reformatted; added new cards to improve AI performance
2025-05-25 16:38:18 +01:00
BobCyril
af0bb7cbfb Update deck17.txt
Deck reformatted; corrected card spelling errors
2025-05-25 16:36:46 +01:00
BobCyril
90e0895b82 Update deck16.txt
Added new flavor text
2025-05-25 16:34:13 +01:00
BobCyril
3e07cb2a19 Update deck15.txt
Deck reformatted; added a hint to improve AI decision making
2025-05-25 16:32:19 +01:00
BobCyril
959c6d8b39 Update deck14.txt
Deck reformatted; swapped in more efficient cards to improve AI performance
2025-05-25 16:30:08 +01:00
BobCyril
720f337546 Update deck13.txt
Deck reformatted
2025-05-25 16:27:13 +01:00
BobCyril
cd308fe5e9 Update deck12.txt
Deck reformatted
2025-05-25 16:24:53 +01:00
BobCyril
c7e7a54277 Update deck11.txt
Deck reformatted
2025-05-25 16:23:16 +01:00
Eduardo MG
4dfa95194e Everlasting Commander, AKR changes, bug fixes
Renamed Random Commander From File to Everlasting Commander,
Bug fixes:
Case of the Locked Hothouse
Khabal Ghoul
Humble the Brute
2025-05-08 12:08:13 -06:00
Eduardo MG
a1b9d5cb2e Merge pull request #1115 from patrickbabb/master
Various Android fixes
2025-05-06 18:38:21 -06:00
Patrick Babb
17f0f59f38 Update GameStateAwards.cpp
Added a "Back to Main Menu" button to the Trophy Room for touch devices.
2025-05-05 23:09:10 -05:00
Patrick Babb
c19410b4fb Update SDLActivity.java
Added a null check to fix the deck downloader menu option.
2025-05-05 00:10:53 -05:00
Patrick Babb
ccd421598e Update SDLActivity.java
Enabled immersive mode on Android devices during onCreate in the lifecycle.
2025-05-04 23:53:45 -05:00
Patrick Babb
e6a99ca9ac Update build.xml
Reverted the core file download link to the previous path format to allow Android to download from the correct URL.
2025-05-04 23:17:40 -05:00
Eduardo MG
e6243342e2 _cards.dat Updates 2025-05-04 17:31:25 -06:00
Eduardo MG
a9547e419d Exiledeath cards revision, version update
Exiledeath must come before damage or status reduction, also not necessary to specify ueot on instants and sorceries.
New Cards:
Marisi, Breaker of the Coil
Secret Plans
Updated version to 0.25.5
2025-05-04 16:34:56 -06:00
Eduardo MG
41f5aceac4 Tar Fiend rework. Sidisi, Regent of the Mire fix 2025-05-01 17:57:49 -06:00
Eduardo MG
a394397dc0 Update AIPlayerBaka.cpp
Remove the unused variable
2025-04-29 23:10:37 -06:00
Eduardo MG
f93bcb32ef 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.
2025-04-29 22:05:54 -06:00
Eduardo MG
9cd1fa5757 Add Ugin's Fate (UGIN), Tarkir: Dragonstorm (TDM), and Tarkir: Dragonstorm Commander (TDC)
_cards.dat files for these sets.
2025-04-24 21:45:41 -06:00
Eduardo MG
9b2f59d64f AIPlayerBaka
Changing how the AI selects attackers, considering creatures with evasion
2025-04-24 14:13:25 -06:00
Eduardo MG
c109b2118a Update AIPlayerBaka.h 2025-04-23 19:40:48 -06:00
Eduardo MG
06bd11b0be Revert "Revert "Revert "Update AIPlayerBaka.cpp"""
This reverts commit d892703902.
2025-04-23 19:25:24 -06:00
Eduardo MG
d892703902 Revert "Revert "Update AIPlayerBaka.cpp""
This reverts commit c0e2a1fe40.
2025-04-23 19:23:50 -06:00
Eduardo MG
c0e2a1fe40 Revert "Update AIPlayerBaka.cpp"
This reverts commit 3555ddba33.
2025-04-23 19:16:43 -06:00
Eduardo MG
3555ddba33 Update AIPlayerBaka.cpp
Changing how AI decides to attack with creatures that have some kind of evasion.
Experimenting with how AI decides to block
2025-04-23 18:51:05 -06:00
Eduardo MG
e2b9429b45 Variants, new macros, old type changed to Kindred
Cleaned extra spaces and bugs in primitives
Macros for Crew 2
Removed old obsolete card type and changed it to Kindred
New zone mybattlefieldhand for "Behold a Dragon"
2025-04-23 18:20:32 -06:00
Eduardo MG
c0c03eecc4 Merge pull request #1112 from BobCyril/master
Improvements to decks 1-10
2025-04-18 18:07:21 -06:00
BobCyril
c9cef1567a Update deck10.txt
Reformatted deck 10
2025-04-16 20:56:32 +01:00
BobCyril
4286557026 Update deck9.txt
Reformatted deck 9
2025-04-16 20:54:52 +01:00
BobCyril
13cf8baf24 Update deck8.txt
Reformatted deck 8
2025-04-16 20:53:39 +01:00
BobCyril
ff046cf9d6 Update deck7.txt
Reformated deck 7. Added hints to make deck slightly less self-destructive, but still retaining its strategy and flavor
2025-04-16 20:51:56 +01:00
BobCyril
13a48b5a14 Update deck6.txt
Reformatted deck 6. Replaced cards which hinder the deck's strategy. Added a hint to stablise AI use of one card.
2025-04-16 20:47:13 +01:00
BobCyril
61bf5bc95d Update deck5.txt
Reformatted deck 5
2025-04-16 20:43:58 +01:00
BobCyril
0679cfd076 Update deck4.txt
Reformatted deck 4
2025-04-16 20:42:17 +01:00
BobCyril
19e28f9dca Update deck3.txt
Reformatted deck 3
2025-04-16 20:40:20 +01:00
BobCyril
ee6ad9609c Update deck2.txt
Reformatted deck 2.  Removed rogue W cards from this GR deck
2025-04-16 20:37:31 +01:00
BobCyril
266ae422f1 Update deck1.txt
Reformatted deck 1
2025-04-16 20:34:20 +01:00
Eduardo MG
a89a352e22 "if paid(alternative) then" changed to "alternative" 2025-04-11 19:00:36 -06:00
Eduardo MG
b21964dc46 Strixhaven variants, fix critical bug
Palladia-Mors, the Ruiner
Vanish into Memory
Dakmor Plague and Inferno. all(player,creature) not supported and crashes the game
color=colorless is redundant
Strixhaven: School of Mages (STX) (VARIANTS)
2025-04-10 18:53:41 -06:00
Eduardo MG
6904d6ffd3 Bug fixes on zones and correcting misspells
Summoner's Bond
Regent's Authority
Mind Burst
Thassa's Oracle
2025-04-08 22:09:47 -06:00
Eduardo MG
786a252cf5 Mana symbols to uppercase, bug fixes
Lands that enter tapped unless a player has 13 or less life
Courier Bat
Demon of Death's Gate
Caldaia Guardian
2025-04-04 22:24:18 -06:00
Eduardo MG
863c3f07bc Bad card line 2025-03-31 13:33:38 -06:00
Eduardo MG
e0867dd737 CM2 update, notATarget on clones
Clones shouldn't target.
Cosmotronic Wave
Leyline of Hope
Regal Bloodlord
Protean Raider
Impetuous Devils
Camera Launcher

New cards in previous commit:
Abyssal Harvester
Boneyard Desecrator
Celestial Armor
Crystal Barricade
Dazzling Denial
Felling Blow
Fleeting Flight
Geralf, the Fleshwright
Hare Apparent
Infernal Vessel
Inspiring Paladin
Kaito, Cunning Infiltrator
Kellan, Planar Trailblazer
Kiora, the Rising Tide
Loot, Exuberant Explorer
Owen Grady, Raptor Trainer
Perforating Artist
Permission Denied
Ravenous Amulet
Reality Spasm
Savage Order
Skyknight Squire
Slick Sequence
Spinner of Souls
Spitting Dilophosaurus
Squad Rallier
Sun-Blessed Healer
Valkyrie's Call
2025-03-31 13:13:53 -06:00
Eduardo MG
671b3bae61 Improved riot, INR, MH3, macros. Bug fixes. New cards
Windbrisk Heights
Orchard Strider
Shefet Monitor
Merfolk Sovereign
Alibou, Ancient Witness
Flesh Allergy
Regal Sliver
name=Pilot token, condition to check if there's a vehicle in your battlefield
Painful Quandary needed a condition to check if the affected player has at least one card in hand
Serpentine Curve shouldn't count itself. Serpentine Curve itself is not yet in your graveyard when you determine the value of X.
Rowen was drawing with nonbasics
Thopter Spy Network
Teferi, Temporal Archmage -10 ability, create an emblem
Exert Influence
Dawnglade Regent effect persisted after dying
Molten Echoes
Undergrowth
Haze of Pollen
Oketra's Avenger
Heliod's Intervention
Aura Barbs
Gravestorm
Inspired Sphinx
Retrofitted Transmogrant
Echoing Assault
Citywide Bust
2025-03-28 17:12:41 -06:00
Eduardo MG
02a4726cbf Merge pull request #1110 from patrickbabb/master
Updates to target arm64-v8a Android devices
2025-03-21 22:08:19 -06:00
Patrick Babb
91d588c670 Update spinlock_gcc_arm.hpp
Added logic to use LSE as a primary instead of Swap.
2025-03-18 22:01:55 -05:00
Patrick Babb
4df4422d93 Update Application.mk
Updated ABI target to arm64-v8a.
Added CFLAG for arm8.1-a.
Added CPPFLAG for LSE
2025-03-18 21:58:59 -05:00
Patrick Babb
0b3b33f727 Update SDL_spinlock.c 2025-03-18 21:55:59 -05:00
115 changed files with 19997 additions and 11283 deletions

View File

@@ -29,11 +29,30 @@ public:
{ {
int r; int r;
#if defined(__ARM_FEATURE_LSE)
// Use LSE atomic instructions if supported
#pragma message("LSE feature detected") // This will print a message in your build logs
__asm__ __volatile__( __asm__ __volatile__(
"swp %0, %1, [%2]": "ldaxr %0, [%1];" // Load-Exclusive instruction
"=&r"( r ): // outputs "cbnz %0, 1f;" // If the value is non-zero, the lock is already acquired
"r"( 1 ), "r"( &v_ ): // inputs "stlxr %w0, %2, [%1];" // Store-Exclusive instruction
"memory", "cc" ); "cbnz %w0, 1f;" // If the store failed, retry
"mov %0, #0;" // Success, zero indicates lock acquired
"1:"
: "=&r"(r)
: "r"(&v_), "r"(1)
: "memory", "cc"
);
#else
// Fallback for systems that don't support LSE
#pragma message("LSE feature not detected") // This will print a message in your build logs if LSE is not detected
__asm__ __volatile__(
"swp %0, %1, [%2];" // Swap instruction (used as a fallback)
: "=&r"(r) // output constraint
: "r"(1), "r"(&v_) // input constraints
: "memory", "cc" // clobbered registers
);
#endif
return r == 0; return r == 0;
} }

View File

@@ -14,10 +14,11 @@
claim that you wrote the original software. If you use this software claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be in a product, an acknowledgment in the product documentation would be
appreciated but is not required. appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be 2. Altered source versions must be plainly marked as such, and must not
misrepresented as being the original software. be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution. 3. This notice may not be removed or altered from any source distribution.
*/ */
#include "SDL_stdinc.h" #include "SDL_stdinc.h"
#include "SDL_atomic.h" #include "SDL_atomic.h"
@@ -30,8 +31,7 @@
#endif #endif
/* This function is where all the magic happens... */ /* This function is where all the magic happens... */
SDL_bool SDL_bool SDL_AtomicTryLock(SDL_SpinLock *lock)
SDL_AtomicTryLock(SDL_SpinLock *lock)
{ {
#if SDL_ATOMIC_DISABLED #if SDL_ATOMIC_DISABLED
/* Terrible terrible damage */ /* Terrible terrible damage */
@@ -85,13 +85,27 @@ SDL_AtomicTryLock(SDL_SpinLock *lock)
return (result == 0); return (result == 0);
#else #else
/* Need CPU instructions for spinlock here! */ /* Fallback implementation using a standard mutex */
__need_spinlock_implementation__ /* You can use SDL_mutex as a fallback if no atomic instructions are available */
static SDL_mutex *mutex;
if (!mutex) {
mutex = SDL_CreateMutex();
}
SDL_mutexP(mutex);
if (*lock == 0) {
*lock = 1;
SDL_mutexV(mutex);
return SDL_TRUE;
} else {
SDL_mutexV(mutex);
return SDL_FALSE;
}
#endif #endif
} }
void void SDL_AtomicLock(SDL_SpinLock *lock)
SDL_AtomicLock(SDL_SpinLock *lock)
{ {
/* FIXME: Should we have an eventual timeout? */ /* FIXME: Should we have an eventual timeout? */
while (!SDL_AtomicTryLock(lock)) { while (!SDL_AtomicTryLock(lock)) {
@@ -99,8 +113,7 @@ SDL_AtomicLock(SDL_SpinLock *lock)
} }
} }
void void SDL_AtomicUnlock(SDL_SpinLock *lock)
SDL_AtomicUnlock(SDL_SpinLock *lock)
{ {
#if defined(_MSC_VER) #if defined(_MSC_VER)
_ReadWriteBarrier(); _ReadWriteBarrier();

View File

@@ -1,6 +1,9 @@
APP_PROJECT_PATH := $(call my-dir)/.. APP_PROJECT_PATH := $(call my-dir)/..
APP_CPPFLAGS += -frtti -fexceptions APP_CPPFLAGS += -frtti -fexceptions
APP_ABI := armeabi-v7a APP_ABI := arm64-v8a
APP_PLATFORM := android-21
APP_CFLAGS += -march=armv8.1-a
APP_CPPFLAGS += -D__ARM_FEATURE_LSE=1
#APP_ABI := x86 # mainly for emulators #APP_ABI := x86 # mainly for emulators
APP_STL := c++_static APP_STL := c++_static
APP_MODULES := libpng libjpeg main SDL APP_MODULES := libpng libjpeg main SDL

View File

@@ -307,16 +307,18 @@ public class SDLActivity extends Activity implements OnKeyListener {
importDeck.setTitle("Choose Deck to Import:"); importDeck.setTitle("Choose Deck to Import:");
File root = new File(System.getenv("EXTERNAL_STORAGE") + "/Download"); File root = new File(System.getenv("EXTERNAL_STORAGE") + "/Download");
File[] files = root.listFiles(); File[] files = root.listFiles();
for (File f : files) { if (files != null) {
if (!myresult.contains(f.toString()) && for (File f : files) {
(f.toString().contains(".txt") || if (!myresult.contains(f.toString()) &&
f.toString().contains(".dck") || (f.toString().contains(".txt") ||
f.toString().contains(".dec"))) { f.toString().contains(".dck") ||
myresult.add(f.toString()); f.toString().contains(".dec"))) {
} myresult.add(f.toString());
} }
}
}
//get first item? //get first item?
if (!myresult.isEmpty()) { if (!myresult.isEmpty()) {
@@ -1115,24 +1117,49 @@ public class SDLActivity extends Activity implements OnKeyListener {
} }
// Setup // Setup
@Override private void enterImmersiveMode() {
protected void onCreate(Bundle savedInstanceState) { final View decorView = getWindow().getDecorView();
//Log.d(TAG, "onCreate()"); decorView.setSystemUiVisibility(
super.onCreate(savedInstanceState); View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
enterImmersiveMode();
}
}
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll()
.build(); @Override
StrictMode.setThreadPolicy(policy); protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main); super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// So we can call stuff from static callbacks StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
mSingleton = this; StrictMode.setThreadPolicy(policy);
mContext = this.getApplicationContext();
RES_FILENAME = getResourceName(); setContentView(R.layout.main);
StorageOptions.determineStorageOptions(mContext);
checkStorageLocationPreference(); // Enable immersive mode
prepareOptionMenu(null); enterImmersiveMode();
}
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// So we can call stuff from static callbacks
mSingleton = this;
mContext = this.getApplicationContext();
RES_FILENAME = getResourceName();
StorageOptions.determineStorageOptions(mContext);
checkStorageLocationPreference();
prepareOptionMenu(null);
}
public void forceResDownload(final File oldRes) { public void forceResDownload(final File oldRes) {
AlertDialog.Builder resChooser = new AlertDialog.Builder(this); AlertDialog.Builder resChooser = new AlertDialog.Builder(this);

File diff suppressed because it is too large Load Diff

View File

@@ -1,76 +1,18 @@
#NAME:Nightmare #NAME:Nightmare
#DESC:I had a terrible Nightmare once #DESC:'All evil is as a nightmare'
#DESC:and then a second #DESC:Thomas Carlyle
#DESC:and a third #DESC:
#DESC:and then I won. #DESC:Win matches to unlock more
#2x Obsianus Golem #DESC:opponents, sets and game modes
1129 Air Elemental (RV) (*) * 2
1129 Animate Dead (RV) (*) * 2
#2x animate dead Bad Moon (RV) (*) * 2
1143 Bog Wraith (RV) (*) * 2
1143 Cursed Land (RV) (*) * 1
#2x Bad Moon El-Hajjaj (RV) (*) * 2
1144 Fear (RV) (*) * 1
1144 Hypnotic Specter (RV) (*) * 2
#2x Bog Wraith # RV Islands
1146
1146
#1x Cursed Land
1148
#1x Fear
1161
#2x El-Hajjâj
1158
1158
#2x Hypnotic Specter
1165
1165
#4x Nightmare
1170
1170
1170
1170
#3x Scathe Zombie
1177
1177
1177
#1x Unholy Strength
1183
#1x Wall of Bone
1184
#1x Zombie Master
1188
#2x Air Elemental
1189
1189
#2x Lifetap
1205
1205
#2x Lord of Atlantis
1206
1206
#2x Mahamoti Djinn
1208
1208
#4x Merfolk of the Pearl Trident
1210
1210
1210
1210
# Swamp (RV)
1373
1373
1373
1373
1374
1374
1374
1374
1375
1375
1375
1375
# Island (RV)
1392 1392
1392 1392
1392 1392
@@ -83,3 +25,26 @@
1394 1394
1394 1394
1394 1394
Lifetap (RV) (*) * 2
Lord of Atlantis (RV) (*) * 2
Mahamoti Djinn (RV) (*) * 2
Merfolk of the Pearl Trident (RV) (*) * 4
Nightmare (RV) (*) * 4
Obsianus Golem (RV) (*) * 2
Scathe Zombies (RV) (*) * 3
# RV Islands
1373
1373
1373
1373
1374
1374
1374
1374
1375
1375
1375
1375
Unholy Strength (RV)(*) * 1
Wall of Bone (RV) (*) * 1
Zombie Master (RV) (*) * 1

View File

@@ -1,30 +1,24 @@
#NAME:Howlings #NAME:Howlings
#DESC:Supported by elemental rage #DESC:'What the howling deep down
#DESC:goblins descend from the mountains #DESC:there conceals, no blessed
#DESC:to conquer the lands below. #DESC:living soul can tell'
#DESC:Friedrich Schiller
# (PSY) added 2 Mountains, 1 Black Vise, 1 Howling Mine #DESC:
# (would've been better to add creatures, but all creatures in the #DESC:Win matches to unlock more
# deck were already at 4 pieces)) #DESC:opponents, sets and game modes
Black Vise (MPS) * 4
# Land(s)
Mountain (8ED) * 20
# Creature(s)
Goblin King (8ED) * 4 Goblin King (8ED) * 4
Goblin Mountaineer (9ED) * 4 Goblin Mountaineer (9ED) * 4
Goblin Piker (9ED) * 4 Goblin Piker (9ED) * 4
Goblin Striker (MRD) * 4 Goblin Striker (MRD) * 4
Hearthfire Hobgoblin (EVE) * 4 Hearthfire Hobgoblin (EVE) * 4
Howling Mine (8ED) * 3
Lightning Bolt (M10) * 4
Mountain (10E) * 4
Mountain (7ED) * 4
Mountain (8ED) * 4
Mountain (9ED) * 4
Mountain (M10) * 4
Raging Goblin (8ED) * 4 Raging Goblin (8ED) * 4
Spark Elemental (5DN) * 4 Spark Elemental (5DN) * 4
Wheel of Fortune (VMA) * 1
# Artifact(s)
Black Vise (V10) * 4
Howling Mine (8ED) * 3
# Instant(s)
Lightning Bolt (M10) * 4
# Sorcery(s)
Wheel of Fortune (VMA) * 1

View File

@@ -1,79 +1,24 @@
#NAME:Alliance #NAME:Alliance
#DESC:In the castle of Bant, #DESC:Order, honor and community
#DESC:the call to battle #DESC:are preserved by the
#DESC:echoes the prayer of Asha. #DESC:noble warriors and the
#DESC:Prepare to face Bant's light! #DESC:towering castles of Bant
#4x unsummon #DESC:
1229 #DESC:Win matches to unlock more
1229 #DESC:opponents, sets and game modes
1229 Deft Duelist (ALA) * 4
1229 Elvish Archers (RV) * 4
#4x Elvish Archer {1}{G}, 2/1 first strike Forest (10E) * 4
1242 Forest (ALA) * 3
1242 Island (10E) * 3
1242 Island (ALA) * 3
1242 Plains (10E) * 4
#4x Scryb Sprites, Faerie, {G}, 1/1 flying Plains (ALA) * 3
1264 Rhox War Monk (ALA) * 4
1264 Savannah Lions (RV) * 4
1264 Scryb Sprites (RV) * 4
1264 Steward of Valeron (ALA) * 4
#4x Savannah Lion, {W},2/1 Swords to Plowshares (RV) * 4
1365 Tundra Wolves (10E) * 4
1365 Unsummon (RV) * 4
1365 Waveskimmer Aven (ALA) * 4
1365
#4x Sword to plowshares {W}
1367
1367
1367
1367
#4x Tundra Wolves {W} - 1/1, first strike
129604
129604
129604
129604
#4x Waveskimmer Aven - Creature Bird Soldier - {2}{G}{W}{U} - 2/4 Flying Exalted
174955
174955
174955
174955
#4x Rhox War monk - Creature {G}{W}{U} - 3/4 Lifelink
174957
174957
174957
174957
#4x Deft duelist - Creature {W}{U} - 2/1 First Strike,Shroud
175121
175121
175121
175121
#4x Steward of Valeron - Creature — Human Druid Knight - {W}{G} - 2/2 {T}:add {G}
175134
175134
175134
175134
#7x plains 10E
129683
129683
129683
129683
129683
129683
129683
#7x Forest 10E
129562
129562
129562
129562
129562
129562
129562
#6x Island 10E
129609
129609
129609
129609
129609
129609

View File

@@ -1,79 +1,26 @@
#Plain black deck
#NAME:Terror #NAME:Terror
#DESC:They groaned, they stirred, #DESC:'They groaned, they stirred,
#DESC:they all uprose, #DESC:they all uprose,
#DESC:Nor spake, nor moved their eyes; #DESC:Nor spake, nor moved their eyes;
#DESC:It had been strange, #DESC:It had been strange,
#DESC:even in a dream, #DESC:even in a dream,
#DESC:To have seen those dead men rise #DESC:To have seen those dead men rise'
#4x Hypnotic Specter #DESC:Samuel Taylor Coleridge
129600 #DESC:
129600 #DESC:Win matches to unlock more
129600 #DESC:opponents, sets and game modes
129600 Bad Moon (RV) * 4
#4x Terror Black Knight (RV) * 4
135199 Black Vise (RV) * 4
135199 Bog Wraith (10E) * 4
135199 Hypnotic Specter (10E) * 4
135199 Severed Legion (10E) * 4
#4x Bad moon Swamp (10E) * 4
1144 Swamp (4ED) * 4
1144 Swamp (9ED) * 4
1144 Swamp (M10) * 4
1144 Swamp (RV) * 4
#4x Severed Legion Terror (10E) * 4
129693 Unholy Strength (10E) * 4
129693 Will-o'-the-Wisp (RV) * 4
129693 Zombie Master (RV) * 4
129693
#4x Unholy Strength
129780
129780
129780
129780
#4x Black Vise
1097
1097
1097
1097
#4x Black Knight
1145
1145
1145
1145
#4x Bog Wraith
129491
129491
129491
129491
#4x Will-o'-the-Wisp
1187
1187
1187
1187
#4x Zombie Master
1188
1188
1188
1188
#20 x Swamp
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373
1373

View File

@@ -1,79 +1,24 @@
#NAME:Jungle #NAME:Jungle
#DESC:Creatures of the mountains, #DESC:In the heart of the jungle
#DESC:forests, and plains, #DESC:there are wild beasts
#DESC:are ready to take their revenge. #DESC:both cunning and fierce
#DESC:
# (PSY) added 1x Tundra Wolves, 1x Scryb Sprites, 1x Forest, 1x Mountain, to bring card count to 60 #DESC:Win matches to unlock more
#DESC:opponents, sets and game modes
#Spark Elemental Forest (10E) * 2
129577 Forest (RV) * 4
129577 Kird Ape (RV) * 4
129577 Lightning Bolt (RV) * 4
129577 Mountain (10E) * 4
#Tundra Wolves Mountain (RAV) * 1
129604 Mountain (RV) * 4
129604 Plains (10E) * 4
129604 Plains (RAV) * 1
129604 Plains (RV) * 4
#Watchwolf Savannah Lions (RV) * 4
83625 Scryb Sprites (RV) * 4
83625 Spark Elemental (10E) * 4
83625 Swords to Plowshares (RV) * 4
83625 Tundra Wolves (10E) * 4
#Wooly Thoctar Watchwolf (RAV) * 4
175062 Woolly Thoctar (ALA) * 4
175062
175062
175062
#Scryb Sprites
1264
1264
1264
1264
#Lightning Bolt
1303
1303
1303
1303
#Kird Ape
1302
1302
1302
1302
#Savannah Lions
1365
1365
1365
1365
#Swords to Plowshares
1367
1367
1367
1367
#Forest6
1388
1388
1388
1388
1388
1388
#Plains9
1397
1397
1397
1397
1397
1397
1397
1397
1397
#Mountain9
1390
1390
1390
1390
1390
1390
1390
1390
1390

View File

@@ -1,86 +1,25 @@
#NAME:Deep Blue #NAME:Deep Blue
#DESC:"Are you sure you want to #DESC:'Here have we war for war,
#DESC: send that mighty creature #DESC:and blood for blood,
#DESC: into the battle? #DESC:Controlment for controlment'
#DESC:William Shakespeare
#DESC: #DESC:
#DESC: You realize it might end up #DESC:Win matches to unlock more
#DESC: fighting against you, right? #DESC:opponents, sets and game modes
#DESC: Air Elemental (10E) * 2
#DESC: It's not like I did not warn Boomerang (10E) * 4
#DESC: you with that Boomerang ..." Control Magic (RV) * 4
#Blue Deck, with Persusasion Coral Merfolk (M10) * 3
#24 Islands Counsel of the Soratami (10E) * 4
158237 Gravelgill Axeshark (SHM) * 4
158237 Island (10E) * 4
158237 Island (4ED) * 4
158237 Island (6ED) * 4
158237 Island (9ED) * 4
158237 Island (M10) * 4
158237 Island (RV) * 4
157875 Lord of Atlantis (RV) * 4
157875 Mahamoti Djinn (10E) * 2
157875 Merfolk of the Pearl Trident (RV) * 3
157875 Persuasion (10E) * 2
157875 Unsummon (10E) * 4
157875
157875
157883
157883
157883
157883
157883
157883
157883
# (PSY) Actually these were only 21 Islands, adding 3 more:
158237
157875
157883
#3Jhessian Lookout
# (PSY) These were listed under "Islands"
176428
176428
176428
#4persusasion
129900
129900
129900
129900
#2Control Magic
1194
1194
#4Boomerang
129494
129494
129494
129494
#4Lord of Atlantis
1206
1206
1206
1206
#2Merfolk
# (PSY) Adding 1 to bring card count to 60
1210
1210
1210
#4Gravelgill
141935
141935
141935
141935
#4Unsummon
136218
136218
136218
136218
#4Counsel of the Soratami
134757
134757
134757
134757
#2Air Elemental
129459
129459
#2 Mahamoti djinn
129633
129633

View File

@@ -1,6 +1,6 @@
#NAME:Rats! #NAME:Rats!
#DESC:"They fought the dogs, #DESC:'They fought the dogs,
#DESC: and killed the cats, #DESC: and killed the cats,
#DESC:And bit the babies in the cradles, #DESC:And bit the babies in the cradles,
#DESC:And ate the cheeses out of the vats #DESC:And ate the cheeses out of the vats
#DESC:And licked the soup #DESC:And licked the soup
@@ -10,17 +10,23 @@
#DESC:And even spoiled the women's chats, #DESC:And even spoiled the women's chats,
#DESC:By drowning their speaking #DESC:By drowning their speaking
#DESC:With shrieking and squeaking #DESC:With shrieking and squeaking
#DESC:In fifty different sharps and flats." #DESC:In fifty different sharps and flats.'
#Black Deck, Rats #DESC:Robert Browning
#26 Swamps #HINT:combo hold(Fear|myhand)^until(Relentless Rats|mybattlefield)^cast(Fear|myhand) targeting(Relentless Rats|mybattlefield)^totalmananeeded({B}{B})
Ascendant Evincar (10E) * 2
Fear (10E) * 4
Oona's Gatewarden (SHM) * 4
Plague Beetle (10E) * 4
Plague Rats (RV) * 4
Rain of Tears (10E) * 4
Relentless Rats (10E) * 4
Relentless Rats (M10) * 4
Relentless Rats (M11) * 4
# SHM Swamps
157886 157886
157886 157886
157886 157886
157886 157886
157886
157871
157871
157871
157871 157871
157871 157871
157871 157871
@@ -29,54 +35,10 @@
158239 158239
158239 158239
158239 158239
158239
158239
158239
157889 157889
157889 157889
157889 157889
157889 157889
157889 Swamp (ALA) * 4
157889 Swamp (10E) * 4
157889 Swamp (M10) * 2
#4plague rats
1173
1173
1173
1173
#4plague beetle
129678
129678
129678
129678
#12 relentless rats
135236
135236
135236
135236
135236
135236
135236
135236
135236
135236
135236
135236
#4Oona's Gatewarden
141975
141975
141975
141975
#4Fear
129544
129544
129544
129544
#Ascendant Evincar
106525
106525
#4rain of tears
135220
135220
135220
135220

View File

@@ -1,7 +1,7 @@
#NAME:Tobias Commander #NAME:Tobias Commander
#DESC:Tobias Andrion considers himself #DESC:A master of strategy, Tobias
#DESC:a master of strategy. Can you #DESC:Andrion helped engineer the
#DESC:defeat him? #DESC:rise of the Sheoltun Empire
#DESC: #DESC:
#DESC:Win Wagic duels to unlock #DESC:Win Wagic duels to unlock
#DESC:more Commander opponents #DESC:more Commander opponents
@@ -10,7 +10,6 @@
#DESC:(mtggoldfish.com) #DESC:(mtggoldfish.com)
#DESC:Built for Wagic by Bob #DESC:Built for Wagic by Bob
#HINT:castpriority(commander,*) #HINT:castpriority(commander,*)
Acrobatic Maneuver (*) * 1 Acrobatic Maneuver (*) * 1
Aethersnipe (*) * 1 Aethersnipe (*) * 1
Alabaster Dragon (*) * 1 Alabaster Dragon (*) * 1

View File

@@ -1,77 +1,24 @@
#NAME:Faeries #NAME:Faeries
#DESC:Be warned, those are not butterflies! #DESC:Be warned, those are not butterflies!
#DESC:Or ... the dangerous kind. #DESC:Faeries love pranks and games
#Plain blue deck #DESC:of deception
#4 x Control Magic, {2}{U}{U}, Enchant creature #DESC:
1194 #DESC:Win matches to unlock more
1194 #DESC:opponents, sets and game modes
1194 Briarberry Cohort (SHM) * 4
1194 Cloud Sprite (10E) * 4
#2x Mahamoti Djinn Control Magic (RV) * 4
129633 Faerie Swarm (SHM) * 2
129633 Glen Elendra Liege (SHM) * 4
#2x Persuasion, {3}{U}{U}, Enchant creature, control magic Island (10E) * 4
129900 Island (LRW) * 4
129900 Island (M10) * 4
#4x Cloud Sprite,{U}, Creature Faerie,1/1,flying cloud Island (RV) * 4
132069 Island (SHM) * 4
132069 Mahamoti Djinn (10E) * 2
132069 Oona's Gatewarden (SHM) * 4
132069 Persuasion (10E) * 2
#2x Sentinels of glen Elendra,{3}{U}, Creature Faerie Soldier,2/3,flash flying Plumeveil (SHM) * 4
139426 Scion of Oona (LRW) * 4
139426 Sentinels of Glen Elendra (LRW) * 2
#4x Scien of Oona, Creature Faerie Soldier,1/1,flash flying,lord(faerie|myinplay)1/1 Wasp Lancer (SHM) * 4
139741
139741
139741
139741
#4x Oona's Gatewarden, {BU},Creature Faerie Soldier,2/1,flying defender wihter
141975
141975
141975
141975
#4x Briaberry Cohort,{1}{U} Creature Faerie Soldier,1/1, flying +1/+1 aslongas(*[blue]|myinplay)
146043
146043
146043
146043
#4x Glen Elendra Liege,{1}{UB}{UB}{UB}, Creature Faerie Knight, flying 2/3 lord(creature[black;blue]|myinplay) 1/1
146743
146743
146743
146743
#4x Wasp Lancer, {UB}{UB}{UB}, Creature Faerie Soldier,3/2,flying
153967
153967
153967
153967
#4x Plumeveil,{UW}{UW}{UW}, Creature Elemental,4/4,flash flying defender
153980
153980
153980
153980
#2x Faerie Swarm, {3}{U}, Creature Faerie,*/*,flying,foreach(*[blue]|myinplay)1/1
158685
158685
#20 x Island (10E)
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606
129606

View File

@@ -1,78 +1,22 @@
#NAME:Kithkin #NAME:Kithkin
#DESC:Led by the Cenn, #DESC:Quick, agile and cooperative,
#DESC:united by the thoughtweft, #DESC:the Kithkin value community,
#DESC:challenge just one #DESC:simplicity and honesty.
#DESC:champion of Goldmeadow, #DESC:
#DESC:and you will face #DESC:Win matches to unlock more
#DESC:the entire cla-chan! #DESC:opponents, sets and game modes
#4x Glorious Anthem, {1}{W}{W}, Enchantment, Creatures you control get +1/+1 Armored Ascension (SHM) * 4
129572 Ballynock Cohort (SHM) * 4
129572 Cenn's Heir (LRW) * 4
129572 Field Marshal (10E) * 4
129572 Glorious Anthem (10E) * 4
#4x Wizened Cenn,{W}{W}, Creature - Kithkin Cleric,2/2, other kithin get +1/+1 Goldmeadow Dodger (LRW) * 4
139716 Mobilization (10E) * 4
139716 Plains (10E) * 4
139716 Plains (9ED) * 4
139716 Plains (LRW) * 4
#4x Zealous Guardian,{WU}, Creature - Kithkin Soldier,1/1,flash Plains (M10) * 4
142028 Plains (SHM) * 4
142028 Thistledown Liege (SHM) * 4
142028 Wizened Cenn (LRW) * 4
142028 Zealous Guardian (SHM) * 4
#4x Ballynock Cohort,{2}{W},Creature - Kithkin Soldier,2/2,First strike, get +1/+1 aslongas you control another white creature
142045
142045
142045
142045
#4x Armored Ascension,{3}{W},Enchant creature, +1/+1 for each plains and flying
146041
146041
146041
146041
#4x Thistledown Liege,{1}{WU}{WU}{WU}, 1/3, creature - Kithkin Knight, give +1/+1 to blue and white creature you control
147409
147409
147409
147409
#4x Kihtkin Shielddare, {1}{W},1/1 creature - Kithkin soldier, {t}{W}:target blocking creature gets +2/+2
158238
158238
158238
158238
#4x Goldmeadow Harrier, {W},1/1 creature - Kithkin soldier,{W}:tap target creature
139397
139397
139397
139397
#4x Field Marshall, {1}{W}{W}, 2/2 creature - Human soldier, Other Soldier creatures get +1/+1 and have first strike
135258
135258
135258
135258
#4x Mobilization, {2}{W}, enchantment, Soldier creatures have vigilance, {2}{W}:Put a 1/1 white Soldier creature token into play
129716
129716
129716
129716
#20x Plains (10E)
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683
129683

View File

@@ -1,77 +1,23 @@
#NAME:Wilt-Leaf Liege #NAME:Wilt-Leaf Liege
#DESC:And here you thought you would enjoy #DESC:The Wilt-Leaf Wood is sickly,
#DESC:a little trip in the forest... #DESC:but the Elven lords jealously
#DESC: #DESC:guard its remaining beauties.
#DESC:Who said only Goblins were nasty? #DESC:
#4x Elvish Archers,{1}{G},2/1,Creature Elf,first strike #DESC:Win matches to unlock more
1242 #DESC:opponents, sets and game modes
1242 Blanchwood Armor (10E) * 4
1242 Cylian Elf (ALA) * 4
1242 Dauntless Dourbark (LRW) * 2
#4x Elvish Champion,{1}{G}{G},2/2,Creature Elf,Other elf gets +1/+1 and forestwalk Elvish Archers (RV) * 4
129534 Elvish Champion (10E) * 4
129534 Forest (10E) * 4
129534 Forest (ALA) * 4
129534 Forest (LRW) * 4
#4x Blanchwood Armor,{2}{G}, Enchant Creature, give +1/+1 foreach forest you control Forest (RV) * 4
135267 Forest (SHM) * 4
135267 Imperious Perfect (LRW) * 4
135267 Safehold Elite (SHM) * 4
135267 Twinblade Slasher (EVE) * 4
#2x Wildslayer Elves, {3}{G},3/3, Creature Elf Warrior, Wither Wildslayer Elves (SHM) * 2
135436 Wilt-Leaf Cavaliers (SHM) * 4
135436 Wilt-Leaf Liege (SHM) * 4
#4x Inperious Perfect,{2}{G}, 2/2 Creature Elf Warrior, gives +1/+1 other elf you control +token 1/1 elf for {T}{G}
139683
139683
139683
139683
#2x Dauntless Dourbark,{3}{G},*/*,Creature Treefolk warrior, power/toughness = nb of forest you control
141851
141851
#4x Safehold Elite, {1}{WG},2/2, Creature Elf Scout, Persist
146077
146077
146077
146077
#4x Boartusk Liege, {1}{RG}{RG}{RG},3/4, Creature Goblin Knight, tramples & Gives +1/+1 to red&green creatures you control
147428
147428
147428
147428
#4x Twinblade Slasher,{G},1/1,Creature Elf Warrior, wither {1}{G}:+2/+2 only once per turn
153436
153436
153436
153436
#4X Wilt-Leaf Cavaliers,{WG}{WG}{WG}, 3/4, Creature Elf Knight, Vigilance
153962
153962
153962
153962
#4x Cylian Elf,{1}{G},2/2,Creature Elf Scout
174935
174935
174935
174935
#20x Forest
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560
129560

View File

@@ -1,66 +1,17 @@
#NAME:Taiga #NAME:Taiga
#DESC:The forces of fire and nature unite. #DESC:Beware the fires deep in
#DESC:the boreal forest
#DESC: #DESC:
#DESC:Can you withstand #DESC:Win matches to unlock more
#DESC:their combined fervor? #DESC:opponents, sets and game modes
#2x Cockatrice Cockatrice (RV) (*) * 2
1238 Craw Wurm (RV) (*) * 3
1238 Earth Elemental (RV) (*) * 2
#3x Craw Wurm Elvish Archers (RV) (*) * 2
1239 Firebreathing (RV) (*) * 1
1239 Fire Elemental (RV) (*) * 2
1239 Flashfires (RV) (*) * 2
#2x Elvish Archers # RV Forests
1242
1242
#2x Giant Spider
1249
1249
#2x Grizzly Bears
1250
1250
#2x Scryb Sprites
1264
1264
#2x Shanodin Dryads
1265
1265
#1x Tranquility
1270
#1x Tsunami
1271
#2x Earth Elemental
1287
1287
#2x Fire Elemental
1290
1290
#1x Flashfires
1293
#3x Goblin King
1296
1296
1296
#2x Hill Giant
1299
1299
#4x Mons's Goblin Raiders
1308
1308
1308
1308
#2x Orcish Oriflamme
1310
1310
1310
# (PSY) Power Surge not available any more, replaced with a third Orcish Oriflamme
#1x Power Surge
#1311
#1x Wheel of Fortune
1326
#1x White Ward
1371
#Forest (RV)
1386 1386
1386 1386
1386 1386
@@ -73,7 +24,12 @@
1388 1388
1388 1388
1388 1388
#Mountain Giant Spider (RV) (*) * 2
Goblin King (RV) (*) * 3
Grizzly Bears (RV) (*) * 2
Hill Giant (RV) (*) * 2
Mons's Goblin Raiders (RV) (*) * 4
# RV Mountains
1389 1389
1389 1389
1389 1389
@@ -86,3 +42,9 @@
1391 1391
1391 1391
1391 1391
Orcish Oriflamme (RV) (*) * 2
Scryb Sprites (RV) (*) * 2
Shanodin Dryads (RV) (*) * 2
Tranquility (RV) (*) * 1
Tsunami (RV) (*) * 1
Wheel of Fortune (RV) (*) * 1

View File

@@ -1,79 +1,25 @@
#NAME:Bad Moon #NAME:Bad Moon
#DESC:The night falls down, #DESC:'Happiness never flourishes
#DESC:the trouble begins. #DESC:by the light of the moon.'
#DESC:The specter of evil, #DESC:Friedrich Schiller
#DESC:will bring you back #DESC:
#DESC:to black! #DESC:Win matches to unlock more
#4x Bad Moon,{1}{B}, Enchantment, all black creature gets +1/+1 #DESC:opponents, sets and game modes
1144 #HINT:alwaysattackwith(Erg Raiders)
1144 Ascendant Evincar (10E) * 2
1144 Bad Moon (RV) * 4
1144 Black Knight (RV) * 4
#4x Black knight,{B}{B}, Creature Knight,2/2, first strike protection from white Erg Raiders (RV) * 4
1145 Eyeblight's Ending (LRW) * 2
1145 Glen Elendra Liege (SHM) * 4
1145 Hypnotic Specter (10E) * 4
1145 Nyxathid (CFX) * 4
#4x Erg Raiders,{1}{B},2/3, does 2 damage to controller if you do not attack with Oona's Gatewarden (SHM) * 4
1159 Swamp (10E) * 4
1159 Swamp (M10) * 4
1159 Swamp (LRW) * 4
1159 Swamp (RV) * 4
#2x Ascendant Evincar,{4}{B}{B},3/3, Legendary Creature Vampire,Flying all black creature get +1/+1 other -1/-1 Swamp (SHM) * 4
106525 Terror (10E) * 2
106525 Unholy Strength (10E) * 4
#4x Hypnotic Specter,{1}{B}{B},2/2, Creature Specter, Flying opponent discard a card if damaged by HS Wasp Lancer (SHM) * 2
129600
129600
129600
129600
#4x Unholy Strengh, {B}, Enchant creature, gives +2/+1
129780
129780
129780
129780
#2x terror, {1}{B}, bury target non black, non artifact creature
135199
135199
#2xEyeblight's Ending,{2}{B},destroy target non-elf creature
139449
139449
#4x Oona's Gatewarden, {UB},2/1, flying defender wither
141975
141975
141975
141975
#4x Glen Elendra Liege,{1}{UB}{UB}{UB}, Creature Faerie Knight, flying 2/3 lord(creature[black;blue]|myinplay) 1/1
146743
146743
146743
146743
#2x Wasp Lancer, {UB}{UB}{UB}, Creature Faerie Soldier,3/2,flying
153967
153967
#4x Nyxathid,{1}{B}{B}, Creature Elemental, pow/thg = 7-nb cards opponent
186616
186616
186616
186616
#20x Swamp (10E)
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754
129754

View File

@@ -1,80 +1,25 @@
#NAME:Burning #NAME:Goblin Gang
#DESC:Better be prepared, #DESC:'We must not look at goblin men,
#DESC:to burn the midnight oil. #DESC:We must not buy their fruits:
#DESC:The goblin brashness #DESC:Who knows upon what soil they fed
#DESC:will make you boil. #DESC:Their hungry thirsty roots?'
#DESC:And you will end #DESC:Christina Rossetti
#DESC:burning with a low flame ... #DESC:
#2 x Bloodmark Mentor #DESC:Win matches to unlock more
142062 #DESC:opponents, sets and game modes
142062 Bloodmark Mentor (SHM) * 2
#4x Scuzzback Scrapper Boartusk Liege (SHM) * 4
142052 Boggart Ram-Gang (SHM) * 4
142052 Goblin Gang Leader (ANB) * 2
142052 Goblin King (10E) * 4
142052 Lightning Bolt (RV) * 4
#4x Goblin king (10E) Mountain (10E) * 4
129578 Mountain (ANB) * 4
129578 Mountain (POR) * 4
129578 Mountain (RV) * 4
129578 Mountain (SHM) * 4
#4x Volcanic hammer Orcish Oriflamme (RV) * 4
4366 Raging Goblin (1OE) * 4
4366 Scuzzback Scrapper (SHM) * 4
4366 Spark Elemental (10E) * 4
4366 Volcanic Hammer (POR) * 4
#4x Boggart Ram-Gang
153970
153970
153970
153970
#4x Lightning Bolt
1303
1303
1303
1303
#4x orcish oriflame
1310
1310
1310
1310
#4x Raging goblin
129688
129688
129688
129688
#4xBoartusk Liege
147428
147428
147428
147428
#2x Siege Gang Commander
130539
130539
#4x Spark elemental
129577
129577
129577
129577
#20x Mountain
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650
129650

View File

@@ -1,83 +1,27 @@
#NAME:Giants! #NAME:Giants!
#DESC:It's actually very hard to miss a giant. #DESC:'Who shall place
#DESC:You don't even have to aim your blow well. #DESC:A limit to the giant's
#DESC:The hard part #DESC:unchained strength?'
#DESC:is to get into striking range. #DESC:William Cullen Bryant
#Mogg Fanatic #DESC:
4832 #DESC:Win matches to unlock more
4832 #DESC:opponents, sets and game modes
4832 #DESC:
4832 #DESC:Deck for Wagic by Bob
#Kithkin Greatheart 1W #HINT:dontattackwith(Mogg Sentry)
146444 Blind-Spot Giant (LRW) * 4
146444 Borderland Behemoth (MOR) * 2
146444 Calamity Bearer (KHM) * 4
146444 Inferno Titan (M11) * 3
#Ballyknock Cohort Mogg Sentry (9ED) * 4
142045 Mountain (9ED) * 4
142045 Mountain (FDN) * 4
142045 Mountain (LRW) * 4
142045 Mountain (M11) * 4
#Sunrise Sovereign 5R Mountain (RAV) * 4
139667 Mountain (SHM) * 4
139667 Mountain (TMP) * 4
139667 Skyraker Giant (FDN) * 4
139667 Stinkdrinker Daredevil (LRW) * 4
#Axegrinder Giant Sunrise Sovereign (LRW) * 3
145976 Universal Automaton (MH1) * 4
145976
145976
145976
#Blind Spot Giant
146597
146597
146597
146597
#Borderland Behemoth
153102
153102
#Oathsworn Giant {4}{W}{W} - 3/4 giant - lord creature|myinplay 0/2 vigilance other
89012
89012
#Pyroclasm
129801
129801
129801
129801
#Wall of Stone
1325
1325
1325
1325
#Smash
130532
#Kitchen Finks
141976
141976
141976
#Mountain
143626
143626
143626
143627
143627
143627
143631
143631
143631
143623
143623
143623
#Plains
143630
143630
143630
143620
143620
143620
143622
143622
143622
143621
143621
143621

View File

@@ -1,77 +1,29 @@
#NAME:Selesnya #NAME:Selesnya Conclave
#DESC:Do you dare arming yourself #DESC:Some say that the
#DESC:against the conclave? #DESC:Conclave's peaceful ways
#Carven Caryatid #DESC:hide sinister coercion
89048 #DESC:
89048 #DESC:Win matches to unlock more
89048 #DESC:opponents, sets and game modes
89048 #DESC:
#Courier Hawk #DESC:Deck by superhiro,
87913 #DESC:refined by Bob
87913 Anthem of Champions (FDN) * 4
#Fists of Ironwood Carven Caryatid (RAV) * 4
83672 Courier Hawk (RAV) * 2
83672 Faithful Watchdog (MH3) * 2
83672 Fists of Ironwood (RAV) * 4
83672 Forest (FDN) * 4
#Goliath Spider Forest (GRN) * 4
88959 Forest (RAV) * 4
88959 Goliath Spider (RAV) * 2
#Nightguard Patrol Nightguard Patrol (RAV) * 3
87975 Plains (FDN) * 4
87975 Plains (GRN) * 4
87975 Plains (RAV) * 4
#Scion of the Wild Scion of the Wild (RAV) * 3
83647 Tolsimir Wolfblood (RAV) * 2
83647 Vernadi Shieldmate (GRN) * 2
83647 Veteran Armorer (RAV) * 2
#Selesnya Guildmage Voice of Resurgence (MM3) * 2
87988 Watchwolf (RAV) * 4
87988
87988
87988
#Tolsimir Wolfblood
89110
89110
#Veteran Armorer
87950
87950
#Knight of the Skyward Eye
175047
175047
#Watchwolf
83625
83625
83625
83625
#Glorious Anthem
129572
129572
129572
129572
#Forest
95097
95097
95097
95106
95106
95106
95099
95099
95099
95098
95098
95098
#Plains
95112
95112
95112
95108
95108
95108
95115
95115
95115
95105
95105
95105

View File

@@ -1,41 +1,24 @@
#NAME:Soldiers #NAME:Soldiers
#DESC:We stand together #DESC:We stand together, strong and true,
#DESC:Man by man #DESC:A wall of swords and shields.
#DESC:A marching wall of swords and shields #DESC:We will not stop,
#DESC:We will not stop #DESC:We will not break,
#DESC:We will not bend #DESC:And never will we yield.
#DESC:And never, never will we yield. #DESC:
Rhox Pikemaster *4 #DESC:Win matches to unlock more
Veteran Armorsmith *4 #DESC:opponents, sets and game modes
Veteran Swordsmith *4 Balefire Liege (EVE) * 4
Captain of the Watch *4 Captain of the Watch (M10) * 4
Elite Vanguard *4 Elite Vanguard (M10) * 4
Honor of the Pure *4 Glorious Anthem (USG) * 4
Glorious Anthem *4 Honor of the Pure (M10) *4
Veteran Armorer *4 Plains (M10) * 4
Balefire Liege *4 Plains (M11) * 4
#Plains Plains (M12) * 4
191382 Plains (M13) * 4
191382 Plains (RAV) * 4
191382 Plains (USG) * 4
191382 Rhox Pikemaster (M10) * 4
191382 Veteran Armorer (RAV) * 4
191382 Veteran Armorsmith (M10) * 4
191395 Veteran Swordsmith (M10) * 4
191395
191395
191395
191395
191395
191396
191396
191396
191396
191396
191396
191385
191385
191385
191385
191385
191385

View File

@@ -1,72 +1,29 @@
#NAME:Lafiel #NAME:Dark Elves
#DESC:Meet the army of the influential #DESC:The elves who wandered
#DESC:elven princess Lafiel. #DESC:too deeply in the forest
#DESC:Don't be fooled by their beauty #DESC:were unable to escape
#DESC:or you will lose #DESC:its shadows.
#DESC:more than just your mind! #DESC:
#DESC:Win matches to unlock more
#(Wagic 0.81 Deck & Avatar by Nakano) #DESC:opponents, sets and game modes
#v0.1 / 01.09.2009 #DESC:
# Initial release #DESC:Original deck concept by
#DESC:Nakano, deck refined by Bob
#v0.2 / 02.09.2009 Drider (AFR) * 2
# - Swamp (10E) *1 = 0 Elderfang Disciple (KHM) * 4
# - Algae Gharial (ALA) *3 = 0 Eyeblight Cullers (CMR) * 2
# - Centaur Glade (ONS) *1 = 0 Eyeblight's Ending (LRW) * 4
# - Farhaven Elf (SHM) *2 = 0 Infestation Sage (FDN) * 4
# + Forest (10E) *1 = 12 Nadier, Agent of the Duskenel (CMR) * 2
# + Birds of Paradise (RAV) *2 = 3 Nadier's Nightblade (CMR) * 4
# + Civic Wayfinder (10E) *2 = 4 Prowess of the Fair (LRW) * 4
# + Regal Force (EVE) *1 = 2 Ruthless Winnower (KHC) * 2
# + Lorescale Coatl (ARB) *2 = 4 Swamp (CLB) * 4
Swamp (ELD) * 2
#Mana (16) Swamp (FDN) * 4
Forest (10E) *12 Swamp (KHM) * 4
Island (10E) *2 Swamp (LRW) * 4
Mountain (10E) *2 Swamp (MKM) * 4
Thornbow Archer (MB1) * 4
#Green (30) Unscrupulous Agent (MKM) * 4
Birds of Paradise (RAV) *3 Viconia, Drow Apostate (CLB) * 2
Blanchwood Armor (USG) *1
Civic Wayfinder (10E) *4
Cloudcrown Oak (LRW) *2
Collective Unconscious (MRQ) *1
Druid of the Anima (ALA) *2
Elvish Piper (10E) *1
Elvish Promenade (LRW) *1
Howl of the Night Pack (SHM) *1
Immaculate Magistrate (LRW) *1
Imperious Perfect (LRW) *1
Juvenile Gloomwidow (SHM) *1
Llanowar Elves (10E) *1
Lys Alana Huntmaster (LRW) *1
Nomadic Elf (INV) *1
Primal Rage (10E) *1
Primordial Sage (RAV) *1
Regal Force (EVE) *2
Spidersilk Armor (MRQ) *1
Thicket Basilisk (RV) *1
Wellwisher (ONS) *2
#Blue (1)
Levitation (M10) *1
#Red (6)
Battle Squadron (MRQ) *1
Dragon Fodder (ALA) *1
Keldon Warlord (RV) *1
Lava Axe (POR) *1
Pyroclasm (ICE) *2
#Black (1)
Prowess of the Fair (LRW) *1
#Multicolor (4)
Lorescale Coatl (ARB) *4
#Artifact (2)
Obelisk of Bant (ALA) *1
Obelisk of Grixis (ALA) *1
#MANA + GREEN + BLUE + RED + BLACK + MULTI + ARTIFACT
#16 + 30 + 1 + 6 + 1 + 4 + 2 =60

View File

@@ -1,7 +1,6 @@
#NAME:Atarka Commander #NAME:Atarka Commander
#DESC:Atarka's dragons bring death #DESC:Savage and ferocious, Atarka
#DESC:from the air. Can you defeat #DESC:is universally feared
#DESC:her?
#DESC: #DESC:
#DESC:Win Wagic duels to unlock #DESC:Win Wagic duels to unlock
#DESC:more Commander opponents #DESC:more Commander opponents

View File

@@ -1,84 +1,27 @@
#NAME:Undead Infiltrator #NAME:Undead Infiltrator
#DESC:You may be prepared #DESC:The dead rise up from
#DESC:for an army of zombies #DESC:the darkest depths
#DESC:rising from the graves. #DESC:
#DESC:But did also expect them #DESC:Win matches to unlock more
#DESC:to crawl #DESC:opponents, sets and game modes
#DESC:out of the sea? Deepchannel Mentor (SHM) * 1
#4x Glen Elendra Liege {1}{UB}{UB}{UB} - flying lord black/blue creature +1/+1 Glen Elendra Liege (SHM) * 4
146743 Inkfathom Infiltrator (SHM) * 2
146743 Island (10E) * 4
146743 Island (RV) * 4
146743 Island (SHM) * 2
#4x Lord of atlantis -{U}{U} 1/1 Lord merfolk +1/+1 Lord of Atlantis (RV) * 4
1206 Lord of the Undead (10E) * 4
1206 Marauding Knight (INV) * 2
1206 Metathran Zombie (INV) * 2
1206 Oona's Gatewarden (SHM) * 4
#4x Lord of the Undead - {1}{B}{B} - 2/2 Lord zombie +1/+1 Sanguine Guard (USG) * 2
129629 Swamp (10E) * 4
129629 Swamp (RV) * 4
129629 Swamp (SHM) * 2
129629 Underground Sea (RV) * 2
#2x Sanguine Guard {1}{B}{B} - Zombie 2/2 first strike {1}{B}:regenerate Vodalian Zombie (INV) * 4
5627 Walking Dead (LEG) * 2
5627 Wasp Lancer (SHM) * 1
#2x Walking dead {1}{B} - 1/1 zombie, {B}:regenerate Zombie Master (RV) * 2
1466 Zombie Outlander (CRX) * 4
1466
#4x Oona's Gatewarden {BU} - defender flying faerie 2/1 wither
141975
141975
141975
141975
#2x Marauding Knight, Zombie {2}{B}{B}, protection from white 2/2 +1/+1 for each plains|opponentinplay
23053
23053
#2x Methatran Zombie, {1}{U}, 1/1
22973
22973
#2x Inkfathom Infiltrator {UB}{UB} - Merfolk 2/1 cantblock, unblockable
154401
154401
#2x Stillmoon Cavalier {1}{WB}{WB} - Zombie knight 2/1 protection from white and black {WB}:flying {WB}:first strike
153037
153037
#4x Vodalian zombie {B}{U}, zombie merfolk 2/2 protection from green
23159
23159
23159
23159
#1x Wasp lancer {BU}{BU}{BU} 3/2 faerie flying
153967
#1x Deepchanel Mentor {5}{U}, 2/2 merfolk lord blue creature:unblockable
141981
#2x Zombie master {1}{B}{B} - 2/3 zombie lord swampwalk {B}:regenerate
1188
1188
#4x Zombie outlander {B}{U} - 2/2 protection from green
185138
185138
185138
185138
#Island
129606
129606
129606
129606
129607
129607
129608
129608
129609
129609
#Swamp
129754
129754
129754
129754
129755
129755
129756
129756
129757
129757

View File

@@ -1,90 +1,28 @@
#NAME:Depletion #NAME:Depletion
#DESC:More than one mage #DESC:The cruellest fate for a
#DESC:has been driven insane by #DESC:spellcaster is to stand
#DESC:the howl of the mine, #DESC:helpless as your power
#DESC:Dreamborn Muse's voice, #DESC:drains away.
#DESC:and Mortivore's breath. #DESC:
#DESC:Prepare to discover the truth #DESC:Win matches to unlock more
#DESC:of the House Dimir. #DESC:opponents, sets and game modes
Animate Dead (RV) * 4
# (PSY) added 2x Swamp, 2x Island, 1x Psychic Drain, Control Magic (RV) * 2
# 1x Forced Fruition, 1x Tome Scour, 1x Traumatize, Dreamborn Muse (10E) * 2
# to bring card count to 60. Forced Fruition (LRW) * 2
Glen Elendra Liege (SHM) * 2
#4x Animate Dead Glimpse the Unthinkable (RAV) * 4
1143 Howling Mine (10E) * 2
1143 Island (10E) * 4
1143 Island (LRW) * 4
1143 Island (SHM) * 4
#2x Control Magic Memory Erosion (ALA) * 2
1194 Mortivore (10E) * 2
1194 Oona's Gatewarden (SHM) * 4
#3x Tome Scour Swamp (10E) * 4
191598 Swamp (LRW) * 4
191598 Swamp (SHM) * 4
191598 Terror (10E) * 2
#4x Glimpse the Unthinkable Tome Scour (M10) * 4
83597 Traumatize (10E) * 3
83597 Underground Sea (RV) * 1
83597
83597
#2x Psychic Drain
89114
89114
#2x Forced Fruition
146166
146166
#2x Howling Mine
129598
129598
#2x Memory Erosion
175108
175108
#2x Mortivore
129648
129648
#2x Terror
135199
135199
#2x Dreamborn Muse
135246
135246
#3x Traumatize
129774
129774
129774
#4x Oona's Gatewarden
141975
141975
141975
141975
#2x Glen Elendra Liege
146743
146743
#12x Swamp
129754
129754
129754
129754
129755
129755
129755
129755
129757
129757
129757
129757
#12x Island
129607
129607
129608
129608
129608
129608
129609
129609
129609
129609
129609
129609

View File

@@ -1,79 +1,23 @@
#NAME:Vigilant Watch #NAME:Vigilant Watch
#DESC:A single soldier may sleep, #DESC:Eyes ever wakeful,
#DESC:but the squad never does. #DESC:eyes ever watchful.
#DESC:Vigilant and watchful #DESC:
#DESC:they will be ready to fight #DESC:Win matches to unlock more
#DESC:as soon as you arrive. #DESC:opponents, sets and game modes
#4x Akrasan Squire - human soldier {W}, 1/1 exalted Akrasan Squire (ALA) * 4
174963 Armored Ascension (SHM) * 4
174963 Aven Squire (CFX) * 2
174963 Aven Trailblazer (CFX) * 2
174963 Ballynock Cohort (SHM) * 4
#4x Armored Ascension - {3}{W} - enchant creature - +1/+1 for each plains Castle (RV) * 2
146041 Field Marshal (10E) * 4
146041 Glorious Anthem (10E) * 4
146041 Mobilization (10E) * 4
146041 Plains (10E) * 4
#2x Aven Squire - Bird soldier {1}{W},1/1 flying,exalted Plains (ALA) * 4
184992 Plains (RAV) * 4
184992 Plains (SHM) * 4
#4x Veteran Armorer - {1}{W} - 2/2 creature you control get +0/+1 Plains (USG) * 4
87950 Serra Zealot (USG) * 2
87950 Soltari Foot Soldier (TMP) * 4
87950 Veteran Armorer (RAV) * 4
87950
#4x Ballynock Cohort, Kithkin Soldier {2}{W}, 2/2, first strike +1/+1 as long as you control another white creature.
142045
142045
142045
142045
#2x Aven Trailblazer, {2}{W} 2/*, bird soldier flying, domain (toughness = basic land you control)
180278
180278
#2x Castle {3}{W} - Enchantment, untapped creature you control get +0/+2
1334
1334
#4x Field Marshal {1}{W}{W} - 2/2 - other soldier get +1/+1 and first strike
135258
135258
135258
135258
#4x Glorious Anthem {1}{W}{W} - Enchantment - creature you control get +1/++
129572
129572
129572
129572
#2x Serra Zealot {W} - 1/1 - First strike
5707
5707
#4x Mobilization {2}{W} - Soldier get vigilance - {2}{W} put a 1/1 soldier in play
129716
129716
129716
129716
#20x plains
1395
1395
1395
1395
129680
129680
129680
129680
129681
129681
129681
129681
129682
129682
129682
129682
129683
129683
129683
129683
#4x Soltari Foot Soldier, {W}, 1/1 shadow
4901
4901
4901
4901

View File

@@ -1,39 +1,33 @@
#NAME:Savannah #NAME:Savannah
#DESC:United against the terrible #DESC:Beasts stalk their prey
#DESC:Phyrexian Fate, #DESC:among the tall grasses
#DESC:there is no time for dispute #DESC:
#DESC:or rivalries #DESC:
#DESC:in Eladamri and Gerrard's army #DESC:Win matches to unlock more
# (PSY) 2x Benalish Hero not available any more, removed (deck has still >60 cards) #DESC:opponents, sets and game modes
# (PSY) 2x Mesa Pegasus not available any more, removed (deck has still >60 cards) Armageddon (VMA) * 1
Black Vise (V10) * 2
# Land(s) Builder's Blessing (AVR) * 2
Forest (8ED) * 13
Plains (8ED) * 9
# Creature(s)
Cockatrice (TSB) * 2 Cockatrice (TSB) * 2
Craw Wurm (9ED) * 2 Craw Wurm (9ED) * 2
Crusade (DDF) * 2
Forest (8ED) * 4
Forest (9ED) * 4
Forest (MRD) * 1
Forest (ONS) * 4
Giant Spider (AKH) * 2 Giant Spider (AKH) * 2
Grizzly Bears (8ED) * 2 Grizzly Bears (8ED) * 2
Spitting Spider (8ED) * 2 Jukai Messenger (CHK) * 4
Kessig Recluse (DKA) * 2
Living Lands (ME4) * 1
Plains (8ED) * 4
Plains (9ED) * 1
Plains (ONS) * 4
Rhox Charger (ALA) * 1
Ronom Unicorn (CSP) * 2 Ronom Unicorn (CSP) * 2
Savannah Lions (A25) * 2 Savannah Lions (A25) * 2
Scute Mob (ZEN) * 3 Scute Mob (ZEN) * 3
Serra Angel (M13) * 2 Serra Angel (M13) * 2
Jukai Messenger (CHK) * 4 Spitting Spider (8ED) * 2
Kessig Recluse (DKA) * 2
Rhox Charger (ALA) * 1
# Artifact(s)
Black Vise (V10) * 2
The Rack (DPA) * 2 The Rack (DPA) * 2
# Enchantment(s)
Builder's Blessing (AVR) * 2
Crusade (DDF) * 2
Living Lands (ME4) * 1
# Sorcery(s)
Armageddon (VMA) * 1
Wrath of God (8ED) * 2 Wrath of God (8ED) * 2

View File

@@ -1,31 +1,27 @@
#NAME:Imperious Vanguard #NAME:Imperious Vanguard
#DESC:An endless stream #DESC:Elves beyond number
#DESC:of elvish warriors #DESC:from the forest
#DESC:will overwhelm you, #DESC:without end.
#DESC:powered by an unceasing #DESC:
#DESC:supply of mana. #DESC:Win matches to unlock more
#DESC: #DESC:opponents, sets and game modes
#DESC:Flee! #HINT:combo hold(Elvish Promenade|myhand)^cast(Elvish Promenade|myhand)^restriction{type(creature|mybattlefield)~morethan~1}^totalmananeeded({3}{G})
#DESC: #HINT:combo hold(Overrun|myhand)^cast(Overrun|myhand)^restriction{type(creature|mybattlefield)~morethan~2}^totalmananeeded({2}{G}{G}{G})
#DESC:You have no chance!
# Land(s)
Forest (M12) * 20
Gaea's Cradle (PRM) * 1
Pendelhaven (A25) * 1
# Creature(s)
Drove of Elves (SHM) * 1 Drove of Elves (SHM) * 1
Elvish Archdruid (M10) * 4 Elvish Archdruid (M10) * 4
Elvish Hexhunter (SHM) * 4 Elvish Hexhunter (SHM) * 4
Elvish Promenade (LRW) * 4
Elvish Vanguard (EMA) * 4 Elvish Vanguard (EMA) * 4
Elvish Visionary (ALA) * 4 Elvish Visionary (ALA) * 4
Heedless One (PSAL) * 3 Forest (10E) * 4
Forest (9ED) * 4
Forest (LRW) * 4
Forest (M10) * 4
Forest (M12) * 4
Gaea's Cradle (PRM) * 1
Heedless One (ONS) * 3
Imperious Perfect (LRW) * 4 Imperious Perfect (LRW) * 4
Llanowar Elves (9ED) * 4 Llanowar Elves (9ED) * 4
Wellwisher (C14) * 4
# Sorcery(s)
Elvish Promenade (LRW) * 4
Overrun (10E) * 2 Overrun (10E) * 2
Pendelhaven (A25) * 1
Wellwisher (C14) * 4

View File

@@ -1,28 +1,23 @@
#NAME:Angelism #NAME:Angelic Sigil
#DESC:An army of angels #DESC:'Every crime has in the
#DESC:will sweep through your defenses #DESC:moment of its perpetration
#DESC:while all your forces can do #DESC:its own avenging angel'
#DESC:is watch and gape in awe. #DESC:Friedrich Schiller
# Land(s) #HINT:combo hold(Wrath of God|myhand)^cast(Wrath of God|myhand)^restriction{type(creature|opponentbattlefield)~morethan~2}^totalmananeeded({2}{W}{W})
Plains (M15) * 19
Quicksand (WWK) * 4
Serra's Sanctum (*) * 1
# Creature(s)
Kitchen Finks (SHM) * 4
Mesa Enchantress (PLC) * 4
# Enchantment(s)
Angelic Chorus (10E) * 3 Angelic Chorus (10E) * 3
Cage of Hands (CHK) * 3 Cage of Hands (CHK) * 3
Honor of the Pure (M10) * 4 Honor of the Pure (M10) * 4
Kitchen Finks (SHM) * 4
Mesa Enchantress (PLC) * 4
Moat (PRM) * 3 Moat (PRM) * 3
Pacifism (A25) * 4 Pacifism (A25) * 4
Plains (10E) * 4
Plains (M10) * 4
Plains (M11) * 4
Plains (M12) * 3
Plains (M15) * 4
Plains (BBD) * 4
Serra's Sanctum (USG) * 1
Sigil of the Empty Throne (CFX) * 4 Sigil of the Empty Throne (CFX) * 4
Swords to Plowshares (BBD) * 4
# Instant(s)
Swords to Plowshares (DDF) * 4
# Sorcery(s)
Wrath of God (10E) * 3 Wrath of God (10E) * 3

View File

@@ -1,26 +1,23 @@
#NAME:Armored Ascent #NAME:Armored Ascent
#DESC:They may look weak #DESC:'The armourers, accomplishing the
#DESC:and barely present, #DESC:knights, / With busy hammers
#DESC:but if you let them grow #DESC:closing rivets up, / Give
#DESC:they will crush your army. #DESC:dreadful note of preparation.'
# Land(s) #DESC:William Shakespeare
Plains (M21) * 23 Armored Ascension (SHM) * 2
Crusade (LEA) * 4
# Creature(s) Disenchant (TPR) * 3
Glorious Anthem (8ED) * 4
Honor of the Pure (M10) * 4
Kitchen Finks (SHM) * 3 Kitchen Finks (SHM) * 3
Knight of Meadowgrain (LRW) * 4 Knight of Meadowgrain (LRW) * 4
Paladin en-Vec (10E) * 2 Paladin en-Vec (10E) * 2
Stillmoon Cavalier (EVE) * 3 Plains (10E) * 4
Plains (8ED) * 3
# Enchantment(s) Plains (LRW) * 4
Armored Ascension (SHM) * 2 Plains (M10) * 4
Crusade (DDF) * 4 Plains (M21) * 4
Glorious Anthem (8ED) * 4 Plains (SHM) * 4
Honor of the Pure (M10) * 4
# Instant(s)
Disenchant (TPR) * 3
Swords to Plowshares (DDF) * 4
# Sorcery(s)
Spectral Procession (SHM) * 4 Spectral Procession (SHM) * 4
Stillmoon Cavalier (EVE) * 3
Swords to Plowshares (BBD) * 4

View File

@@ -1,27 +1,19 @@
#NAME:Spectral Rack #NAME:Spectral Rack
#DESC:"We will clear your mind #DESC:Spectral illusions are
#DESC: until nothing is left. #DESC:still real terrors
#DESC: And we will grow stronger
#DESC: as you keep losing
#DESC: your thoughts."
# Land(s)
Gargoyle Castle (M10) * 4
Swamp (M21) * 19
Volrath's Stronghold (TPR) * 1
# Creature(s)
Black Knight (M10) * 4 Black Knight (M10) * 4
Graveborn Muse (10E) * 4 Doom Blade (M10) * 4
Gargoyle Castle (M10) * 4
Hymn to Tourach (V13) * 4
Hypnotic Specter (M10) * 4 Hypnotic Specter (M10) * 4
Nyxathid (CFX) * 4 Nyxathid (CFX) * 4
Skullslither Worm (J22) * 4
# Artifact(s) Swamp (10E) * 4
The Rack (DPA) * 4 Swamp (ISD) * 4
Swamp (M10) * 4
# Instant(s) Swamp (M21) * 4
Doom Blade (M10) * 4 Swamp (TSP) * 3
Last Gasp (RAV) * 4
Tendrils of Corruption (TSP) * 4 Tendrils of Corruption (TSP) * 4
The Rack (DPA) * 4
# Sorcery(s) Victim of Night (ISD) * 4
Hymn to Tourach (V13) * 4 Volrath's Stronghold (TPR) * 1

View File

@@ -1,7 +1,7 @@
#NAME:Ragavan Commander #NAME:Ragavan Commander
#DESC:Ragavan's pirates steal both #DESC:Ragavan the pirate steals
#DESC:treasure and your spells! #DESC:more than just treasure
#DESC:Can you defeat him? #DESC:from his enemies
#DESC: #DESC:
#DESC:Win Wagic duels to unlock #DESC:Win Wagic duels to unlock
#DESC:more Commander opponents #DESC:more Commander opponents

View File

@@ -1,64 +1,23 @@
#NAME:Might Sliver #NAME:Mighty Slivers
# #DESC:The hive mind of the Slivers
#DESC:Beware! Beware! #DESC:erases any difference
#DESC:They are everywhere! #DESC:between the one and the many.
#DESC:Even in the air Bonesplitter Sliver (TSP) * 4
#DESC:and under the ground. Forest (8ED) * 4
#DESC:The whole world has turned Forest (TMP) * 4
#DESC:into a squirming mass Forest (TSP) * 4
#DESC:of these small, yet dangerous Fury Sliver (TSP) * 2
#DESC:... things ... Gemhide Sliver (TSP) * 4
Heart Sliver (H09) * 2
# Land(s) Horned Sliver (TPR) * 3
Forest (8ED) * 12 Island (8ED) * 4
Island (8ED) * 3 Island (TMP) * 1
Might Sliver (TSP) * 4
Mountain (8ED) * 6 Mountain (8ED) * 6
Plains (8ED) * 3 Mountain (TMP) * 4
Muscle Sliver (H09) * 4
# Creature(s) Shifting Sliver (LGN) * 2
Bonesplitter Sliver (TSP) * 4 # nice cumulative +2/+0 bonus Spinneret Sliver (TSP) * 3
Crystalline Sliver (H09) * 1 # Shroud is nice, especially in a deck with no non-creature spells Striking Sliver (M14) * 3
Fury Sliver (TSP) * 2 # gives double strike, only 2 because it's a 6-drop creature Two-Headed Sliver (TSP) * 1
Gemhide Sliver (TSP) * 4 # Additional mana source to get Might Slivers out faster Winged Sliver (H09) * 3
Heart Sliver (H09) * 2 # gives Haste
Horned Sliver (TPR) * 3 # gives Trample, also 2/2 isn't bad for a 3-drop creature that others will pump
Might Sliver (TSP) * 4 # nice cumulative +2/+2 bonus
Muscle Sliver (H09) * 4 # cheap and the +1/+1 bonus is cumulative and can't be misused by the AI
Shadow Sliver (TSP) * 1 # might be great or bad - thrown in as an element of surprise
Spined Sliver (H09) * 2 # gives Rampage
Spinneret Sliver (TSP) * 3 # 2/2 Sliver for only 2 mana, also gives Reach to all slivers, which is good because we only have
# # two Winged Slivers in the deck, and those might not even be played because we have few Islands.
Talon Sliver (*) * 3 # gives First Strike
Watcher Sliver (TSP) * 1 # nice cumulative +0/+2 bonus, but too expensive to have more of them, and we have 3 plains in the deck
Winged Sliver (H09) * 2 # gives Flying
# Cards considered, but not included:
# Basal Sliver - AI too eager to sacrifice
# Clot Sliver - would be the only black sliver left after Basal
# Sliver was taken out; also: AI not too smart with regeneration
# Sedge Sliver - no swamps in deck (since all black slivers were
# taken out)
# Firewake Sliver - AI too eager to sacrifice
# Mnemonic Sliver - AI too eager to sacrifice
# Telekinetic Sliver - AI doesn't make smart tapping definitions
# Quilled Sliver - AI can't target ability in a smart way
# Armored Sliver - AI can't decide well when to use ability
# Barbed Sliver - AI can't decide well when to use ability
# Venser's Sliver - doesn't strengthen other slivers
# Sliversmith - doesn't profit from other slivers. Its tokens
# do, but the AI isn't smart in deciding which cards to discard
# Metallic Sliver - is cheap, but doesn't strengthen other slivers
# Victual Sliver - AI too eager to sacrifice
# Battering Sliver - effect already provided by cheaper Horned Sl.
# Sliver Queen - AI can't handle 5-color deck
# Reflex Sliver - Heart Sliver has same effect for lower cost
# Sinew Sliver - good +1/+1 bonus, but only few plains in this
# deck, and red/green slivers provide same or similar effects
# Synchronous Sliver - Vigilance is nice, but sliver is blue and
# pretty expensive
#
# Cards removed from the deck:
# 20 dual lands - AI only uses the first "auto" rule for each
# dual land. Therefore none of the chosen lands produced green
# mana, the AI treated most dual lands as islands, and the deck
# never got sliver production started.

View File

@@ -1,38 +1,28 @@
#NAME:Master of Ether #NAME:Master of Ether
#DESC:"Surrounded by the things I built #DESC:Surrounded by the things I built,
#DESC: my power will grow #DESC:my power grows boundlessly
#DESC: boundlessly." Academy Ruins (TSP) * 1
Akroma's Memorial (FUT) * 2
# Cards considered, but not included: Ancient Den (MRD) * 2
# Gaea's Cradle - would make the deck even stronger, but doesn't Cathodion (C14) * 4
# fit the theme. Coiled Tinviper (TPR) * 1
# Glaze Fiend (ALA) * 2
# Cards removed from the deck: Great Furnace (MRD) * 2
# Sculpting Steel - reported to lead to crashes Island (10E) * 4
Island (MRD) * 2
# Land(s) Master of Etherium (ALA) * 4
Ancient Den (MRD) * 4 # 20 artifact lands for huge bonuses on Master of Etherium and Tolarian Academy. Mox Jet (2ED) * 1
Great Furnace (MRD) * 4 Mox Sapphire (2ED) * 1
Nuisance Engine (MRD) * 4
Ornithopter (MRD) * 4
Salvage Slasher (CFX) * 2
Scarecrone (EVE) * 2
Seat of the Synod (MRD) * 4 Seat of the Synod (MRD) * 4
Tree of Tales (MRD) * 4 Silver Myr (MRD) * 4
Steel Wall (MRD) * 2
Swamp (10E) * 2
Tolarian Academy (VMA) * 1
Tree of Tales (MRD) * 1
Vault of Whispers (MRD) * 4 Vault of Whispers (MRD) * 4
Academy Ruins (TSP) * 1 # brings back artifacts Vedalken Archmage (MRD) * 2
Tolarian Academy (VMA) * 1 # Generates massive amounts of mana in this deck - which the AI usually wastes. Yotian Soldier (MRD) * 2
Island (10E) * 3
# Creature(s)
Cathodion (C14) * 4 # 3-drop 3/3 creature without a down-side since manaburn was abolished
Coiled Tinviper (TPR) * 1 # first strike attacker
Glaze Fiend (ALA) * 2 # temp. bonus for playing artifacts
Master of Etherium (ALA) * 4 # gets stronger with every artifact
Ornithopter (MRD) * 4 # cheap artifact, later air defense
Salvage Slasher (CFX) * 2 # grows stronger with artifacts in graveyard - nice effect if opponent has destroyed all artifacts
Scarecrone (EVE) * 2 # brings back artifacts
Silver Myr (MRD) * 4 # artifact source of blue mana (which is needed for the 6 Vedalken)
Steel Wall (MRD) * 2 # mainly for defending
Vedalken Archmage (MRD) * 2 # draws card when summoning artifact
Yotian Soldier (MRD) * 2 # cheap defender
# Artifact(s)
Akroma's Memorial (FUT) * 2 # massive bonuses incl. Trample
Nuisance Engine (MRD) * 4 # create more cheap artifacts

View File

@@ -1,28 +1,30 @@
#NAME:Kinsbaile Cavalier #NAME:Kinsbaile Cavalier
#DESC:The knights on their steeds #DESC:The knights on their steeds
#DESC:and the knights from the sky #DESC:and the knights from the sky
#DESC:unite #DESC:unite in the pursuit of honor
#DESC:in their crusade for honor Armored Ascension (M10) * 2 #
Blessing (RV) * 2 # Blessing (RV) * 2 #
Crusade (RV) * 4 # Crusade (RV) * 4 #
Northern Paladin (RV) * 1 #
Lost Order of Jarkeld (ICE) * 2 #
Order of the Sacred Torch (ICE) * 1 #
Soltari Crusader (TMP) * 1 #
Crusading Knight (INV) * 1 # Crusading Knight (INV) * 1 #
Leonin Skyhunter (MRD) * 1 #
Flagstones of Trokair (TSP) * 2 # Flagstones of Trokair (TSP) * 2 #
Honor of the Pure (M10) * 4 #
Kabira Crossroads (ZEN) * 2 #
Kinsbaile Cavalier (MOR) * 3 #
Knight of Meadowgrain (LRW) * 2 #
Leonin Skyhunter (MRD) * 1 #
Lost Order of Jarkeld (ICE) * 2 #
Northern Paladin (RV) * 1 #
Order of the Sacred Torch (ICE) * 1 #
Paladin en-Vec (10E) * 2 # Paladin en-Vec (10E) * 2 #
Plains (10E) *16 # Plains (LRW) * 4 #
Plains (M10) * 4 #
Plains (10E) * 4 #
Plains (RV) * 4 #
Plains (TSP) * 4 #
Plover Knights (LRW) * 1 #
Sigiled Paladin (ALA) * 1 #
Skyhunter Patrol (10E) * 1 # Skyhunter Patrol (10E) * 1 #
Skyhunter Prowler (10E) * 2 # Skyhunter Prowler (10E) * 2 #
Plover Knights (LRW) * 1 # Soltari Crusader (TMP) * 1 #
Knight of Meadowgrain (LRW) * 2 #
Kinsbaile Cavalier (MOR) * 3 #
Wilt-Leaf Cavaliers (SHM) * 3 #
Kabira Crossroads (ZEN) * 2 #
Sigiled Paladin (ALA) * 1 #
White Knight (M10) * 2 # White Knight (M10) * 2 #
Honor of the Pure (M10) * 4 # Wilt-Leaf Cavaliers (SHM) * 3 #
Plains (M10) * 4 #
Armored Ascension (M10) * 2 #

View File

@@ -1,26 +1,25 @@
#NAME:Bad Dreams #NAME:Bad Dreams
#DESC:If you ever thought #DESC:'For in that sleep of death
#DESC: that YOU had bad dreams ... #DESC:what dreams may come / When
#DESC:Wait until you meet these. #DESC:we have shuffled off this
# Land(s) #DESC:mortal coil'
Mountain (M10) * 8 #DESC:William Shakespeare
Swamp (M10) * 16 #HINT:combo hold(Damnation|myhand)^cast(Damnation|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{B}{B})
#HINT:combo hold(Infest|myhand)^cast(Infest|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({1}{B}{B})
# Artifact(s)
Black Vise (V10) * 1 Black Vise (V10) * 1
Damnation (PLC) * 4
Font of Mythos (CFX) * 2 Font of Mythos (CFX) * 2
Howling Mine (8ED) * 4 Howling Mine (8ED) * 4
# Enchantment(s)
Spiteful Visions (SHM) * 4
Underworld Dreams (8ED) * 4
# Instant(s)
Lightning Bolt (M10) * 4
Sudden Impact (8ED) * 4
Terminate (ARB) * 4
# Sorcery(s)
Damnation (PLC) * 4
Infest (ALA) * 4 Infest (ALA) * 4
Lightning Bolt (M10) * 4
Mountain (8ED) * 4
Mountain (M10) * 4
Spiteful Visions (SHM) * 4
Sudden Impact (8ED) * 4
Swamp (10E) * 4
Swamp (8ED) * 4
Swamp (9ED) * 4
Swamp (M10) * 4
Terminate (ARB) * 4
Underworld Dreams (8ED) * 4
Wheel of Fortune (VMA) * 1 Wheel of Fortune (VMA) * 1

View File

@@ -1,72 +1,23 @@
#NAME:Ball Lightning #NAME:Ball Lightning
# #DESC:'Brief as the lightning
#DESC:"You are nothing #DESC:in the collied night /
#DESC: But more fuel #DESC:That, in a spleen, unfolds
#DESC: For my insatiable #DESC:both heaven and earth'
#DESC: Rage!" #DESC:William Shakespeare
# #HINT:alwaysattackwith(Ball Lightning)
Ball Lightning (M10) *4
Ball Lightning (M10) *4 Beacon of Destruction (10E) *2
Fire Tempest (POR) *2
Beacon of Destruction (10E) *2 # 28 direct damage spells Flame Burst (ODY) *4
Flame Burst (ODY) *4 Flame Javelin (SHM) *4
Flame Javelin (SHM) *4 Howling Mine (10E) *4
Kindle (TMP) *4 Kindle (TMP) *4
Lava Spike (CHK) *4 Lava Spike (CHK) *4
Lightning Bolt (M10) *4 Lightning Bolt (M10) *4
Fire Tempest (POR) *2 Mountain (10E) *4
Volcanic Hammer (POR) *4 Mountain (CHK) *4
Mountain (M10) *4
Howling Mine (10E) *4 # accelerates the game, makes more Mountain (ODY) *4
# # damage spells available Mountain (POR) *4
Mountain (TMP) *4
Mountain (10E) *24 Volcanic Hammer (POR) *4
# Cards considered, but not included:
# Sonic Burst - 4 damage is nice, discarding a card is not.
# Shock - nice damage per cost ratio, but 2 damage is too little,
# especially since the AI likes to use it on creatures with
# toughness >2
# Steam Blast - nice effect on all creatures and players, but
# damage amplitude of 2 is just a bit too little.
#
# Blaze - AI currently casts spells with "X" cost for too weak an
# effect
# Char - damage per cost ratio too low, and damages caster as well
# Earthquake - difficult to fine-tune for the AI: too little mana
# and the effect might be wasted, too much mana and the effect
# might be dangerous for the AI and its creatures as well.
# Fault Line - more expensive than Earthquake for same effect
# Fire Tempest - very expensive, and too dangerous for the AI
# Fireball - AI doesn't choose targets well
# Flamewave Invoker - ability too expensive compared to Beacon of
# Destruction
# Lava Axe - Too expensive for one-time use, esp. since red mana
# acceleration is currently not possible
# Lightning Blast - Too expensive
# Puncture Blast - damage per cost ratio too low. Wither damage
# would help against big creatures, but so do the walls, and the
# opponent hopefully won't last long enough to bring many big
# creatures out anyway.
# Puncture Bolt - effect too weak
# Scorching Spear - effect too weak
# Zap - too little damage, the AI often uses it on a creature
# that doesn't get killed by it, so the card is wasted.
# Jayemdae Tome - casting cost and ability cost too expensive in
# that deck; Howling Mine serves the same purpose, and hopefully
# the opponent will be dead before he can make much use of the
# cards he draws.
# Cards removed from the deck:
# none
# Notes:
#
# The AI doesn't target the damage spells well, often wasting them
# on creatures that are tough enough to survive the damage, or
# casting them on creatures when it could have won they game by
# targeting the opponent.
#
# The AI sometimes casts Ball Lightning and then doesn't attack
# with it, effectively wasting the card.

View File

@@ -1,64 +1,23 @@
#NAME:Plateau #NAME:Plateau
#DESC:In the highland of Boros #DESC:There are no hiding places
#DESC:Angels, elementals and goblins #DESC:on the high steppes beyond
#DESC:are preparing for battle. #DESC:the mountain passes
#DESC:Beware, the crusade is coming... #DESC:
#4x Lightning Helix {W}{R} - does 3 damage and you gain 3 life replacement for #2x Black Vise (1097) and #2x The Rack (1139) #DESC:Win matches to unlock more
87908 #DESC:opponents, sets and game modes
87908 Boros Recruit (RAV) * 4
87908 Bull Cerodon (ALA) * 3
87908 Castle (RV) * 2
# (PSY) added a third Bull Cerodon to bring the deck to 60 cards Cerodon Yearling (ARB) * 2
#2x Bull Cerodon replacement for #3x Earth Elementat {3}{R}{R} -4/5 (1287) Crusade (RV) * 1
174952 Fire Elemental (RV) * 2
174952 Goblin King (10E) * 2
174952 Hearthfire Hobgoblin (EVE) * 2
#2x Fire Elemental {3}{R}{R} - 5/4 Hill Giant (RV) * 1
1290 Keldon Warlord (RV) * 1
1290 Lightning Helix (RAV) * 4
#2 x Nobilis of War {RW}{RW}{RW}{RW}{RW} replacement for 2x Fire elemental (1290) Mons's Goblin Raiders (RV) * 1
154258 # RV Mountains
154258
#2x Goblin king (replaced Rv version 1296 with 10E)
129578
129578
#4 x Boros Recruit - {WR} - Goblin 1/1 first strike - Replace 2x Goblin Baloon brigade (1295) and 2 x Benalish Hero {W} -1/1 banding (1330)
88992
88992
88992
88992
#1x Mons Goblin Raide (1308)
1308
#2x Skyknight Legionnaire replacement for #2x Granite Gargoyle {2}{R} - 2/2 flying {R}:0/1 1297
109082
109082
#1x Orcish Oriflame
1310
#2x Castle {3}{W} - untapped creature get 0/2
1334
1334
#1x Crusade White creature get +1/+1 {W}{W}
1341
#2x Cerodon Yearling {R}{W} vigilance haste 2/2 replacement for pearled Unicord 2/2 {2}{W} (1356)
180604
180604
#2x Serra Angel {3}{W}{W} - 4/4 flying,vigilance
1366
1366
#2x Wall of sword {3}{W} 3/5 flying defender
1369
1369
#2x White knight 2/2 first strike, protection from black
1370
1370
#1x Hill Giant {3}{R} - 3/3
1299
#2x Hearthfire Hobgoblin replacement for - 1x Hurloon Minotaur - {1}{R}{R} - 2/3 - 1300 and 1xEarth Elementat {3}{R}{R} -4/5 - 1287
157201
157201
#1x Keldon Warlord
1301
#Moutains
1389 1389
1389 1389
1389 1389
@@ -71,7 +30,9 @@
1391 1391
1391 1391
1391 1391
#Plains Nobilis of War (EVE) * 2
Orcish Oriflamme (RV) * 1
# RV Plains
1395 1395
1395 1395
1395 1395
@@ -84,3 +45,7 @@
1397 1397
1397 1397
1397 1397
Serra Angel (RV) * 2
Skyknight Legionnaire (RAV) * 2
Wall of Swords (RV) * 2
White knight (RV) * 2

View File

@@ -1,76 +1,23 @@
#NAME:Undead Lords #NAME:Undead Lords
# #DESC:Can you smell the sweet perfume
#DESC:"Can you smell the sweet perfume #DESC:of festering flesh and rotting bones?
#DESC: Of festering flesh and rotting bones? Beacon of Unrest (10E) *1
#DESC: Butcher Ghoul (AVR) * 2
#DESC: Rejoice if you like it Cemetery Reaper (M10) *4
#DESC: Because soon, soon Death Baron (ALA) *4
#DESC: You will be part of my army." Diregraf Colossus (SOI) * 1
# Champion of the Perished (MID) *4
Geralf's Messenger (DKA) * 1
Lord of the Undead (10E) *4 # strengthens and raises zombies Lord of the Undead (10E) *4
Cemetery Reaper (M10) *4 # strengthens zombies Scarscale Ritual (SHM) *4
Death Baron (ALA) *4 # strengthens zombies +deathtouch Severed Legion (10E) *1
Soulless One (ONS) *4 # gets powerful with lots of zombies Soulless One (ONS) *4
Swamp (10E) *4
Walking Dead (LEG) *2 # cheap early defense Swamp (ALA) *4
Swamp (M10) *4
Zombie Master (RV) *2 # for Swampwalk, zombie regeneration, Swamp (RAV) *4
# # and 2/3 isn't bad either Swamp (RV) *4
Severed Legion (10E) *1 # \ Swamp (SHM) *4
Warpath Ghoul (M10) *1 # > some expensive zombies Walking Dead (LEG) *2
Mass of Ghouls (FUT) *1 # / Vengeful Dead (SCG) * 2
Zombie Master (RV) *2
Dreadwing (CFX) *2 # \ 6 cheap zombies - neither can
Hate Weaver (10E) *2 # > use its abilities. These are
Roofstalker Wight (RAV) *2 # / just temporary solutions to
# # rack zombie numbers up for the
# # Soulless One.
Beacon of Unrest (10E) *1 # More raising of zombies
Scarscale Ritual (SHM) *4 # Card drawer
Dark Ritual (RV) *4
Swamp (10E) *22
# Cards considered, but not included:
# Shepherd of the Rot - *much* too dangerous for the AI in this
# deck
# Graveborn Muse - dito
# Empty the Catacombs - would weaken the Soulless One
# Dauthi Ghoul - too expensive for a 1/1 creature in a
# non-shadow deck
# Zombify - too expensive, a Zombie deck has cheaper means
# Cruel Revival - too expensive
# Dreg Reaver - Mass of Ghouls better for same cost
# Zombie Goliath - Mass of Ghouls better for same cost
# Gluttonous Zombie - Mass of Ghouls has better power, fear
# won't work against black or artifacts
# Dross Prowler - Severed Legion better for same cost
# Scathe Zombies - Severed Legion better for same cost
# Bog Raiders - Swampwalk provided by Zombie Master, so B.R. is
# weaker than Severed Legion for same cost
# Phyrexian Ghoul - AI can't handle sacrifice decisions well
# Nantuko Husk - dito
# Recover - too expensive
# Disentomb - the Lord of the Undead will do most of the Raising
# Raise Undead - dito
# Tortured Existence - dito
# Dross Crocodile - too expensive
# Gravedigger - too expensive
# Spineless Thug - cheap, but can't block
# Feeding Frenzy - nice but too expensive
# Sadistic Glee - AI casts it on opponent's creatures
# Unholy Grotto, Volrath's Stronghold - would weaken Soulless One
# Haunted Crossroads - would weaken Soulless One
# Cards removed from the deck:
# Accursed Centaur - sacrifices itself
# Dark Ritual - AI doesn't use the mana
# Notes:
#
# Slow buildup, and no synergy until the 3-drop creatures come in.
# Would profit a lot from Dark Ritual if it worked.

View File

@@ -1,48 +1,25 @@
#NAME:Zuberi's Flock #NAME:Zuberi's Flock
# #DESC:There is no sight more awesome
#DESC: Winged fighters #DESC:than the battle flight of the
#DESC: for honor and justice #DESC:griffins. Zuberi's golden
#DESC: cross the chasm #DESC:feathers dazzle their foes with
#DESC: to take their revenge #DESC:the brightness of a second sun.
# #HINT:combo hold(Moat|myhand)^cast(Moat|myhand)^restriction{type(Moat|mybattlefield)~lessthan~1}^totalmananeeded({2}{W}{W})
Courier Hawk (RAV) * 2
Zuberi, Golden Feather (MIR) *2 Diving Griffin (8ED) * 4
Fearless Fledgling (ZNR) * 2
Suntail Hawk (10E) *4 # cheap flyer Honor of the Pure (M10) * 4
Courier Hawk (RAV) *4 # cheap flyer Moat (LEG) * 4
Wild Griffin (10E) *3 # balanced 3-drop flyer Plains (10E) * 4
Griffin Sentinel (M10) *3 # defensive 3-drop flyer Plains (8ED) * 4
Razorfoot Griffin (M10) *2 # offensive 4-drop flyer Plains (M10) * 4
Ekundu Griffin (MIR) *2 # same as Razorfoot Griffin Plains (MIR) * 4
Spotted Griffin (POR) *2 # defensive 4-drop flyer Plains (RAV) * 4
Divebomber Griffin (RAV) *1 # only 1, AI doesn't use ability Plains (SHM) * 4
Windbrisk Raptor (SHM) *1 # not a griffin, but a bird, and Silverbeak Griffin (M19) * 4
# # fits well as an endgame surprise Suntail Hawk (10E) * 4
Sunspire Griffin (RTR) * 4
Moat (LEG) *4 # 4 because it's important for this Swords to Plowshares (RV) * 2
# # deck to keep strong attackers away Windbrisk Raptor (SHM) * 1
Zeriam, Golden Wind (DMC) * 3
Blessing (RV) *2 # \ 6 enchantments to reinforce the Zuberi, Golden Feather (MIR) * 2
Holy Strength (10E) *2 # > holy nature of the griffins -
Honor of the Pure (M10) *2 # / and the creatures need buffs
Swords to Plowshares (RV) *2 # reinforces the aggresiveness of
# # the griffin theme, and stalls the
# # the game until Moat comes in
Plains (10E) *24
# Cards considered, but not included:
# Loyal Gyrfalcon - too expensive for a non-griffin in this deck
# Crusade - Weaker than Honor of the Pure
# Cards removed from the deck:
# Welkin Hawk - not a griffin, and can crash the game in 0.8.1
# Righteousness - AI doesn't use it
# Teremko Griffin - Banding removed from Wagic
# Notes:
# Flavor deck, might be more competitive if it included bird
# soldiers and global enchantments (Crusade, Glorious Anthem), but
# I wanted to limit the theme of this deck to "animal" griffins
# and birds, which excluded the "civilized" Aven and the more
# civilized enchantments.

View File

@@ -1,58 +1,28 @@
#NAME:Viashino Warrior #NAME:Viashino Warriors
# #DESC:Descended from dragons, the
#DESC:"With claws and swords and flames #DESC:Viashino are agile, aggressive
#DESC: we fiercely protect #DESC:and deadly
#DESC: those we revere" #HINT:alwaysattackwith(Archwing Dragon)
#HINT:alwaysattackwith(Viashino Cutthroat)
Viashino Slasher (RAV) *4 # cheap Viashino #HINT:alwaysattackwith(Viashino Sandscout)
Viashino Slaughtermaster (CFX) *4 # cheap Viashino #HINT:alwaysattackwith(Viashino Sandstalker)
Viashino Spearhunter (M10) *4 # first strike Archetype of Aggression (BNG) *2
Viashino Grappler (INV) *4 # high power but very vulnerable Archwing Dragon (AVR) *2
Viashino Warrior (MIR) *2 # attacker Bloodmark Mentor (SHM) *3
Viashino Weaponsmith (USG) *2 # attacker Impact Tremors (DTK) *4
Viashino Fangtail (RAV) *3 # attacker Mountain (10E) *1
Furnace Whelp (10E) *2 # not a Viashino, but having Mountain (AVR) *4
# # two flyers helps the deck Mountain (INV) *4
Mountain (MIR) *4
Firebreathing (10E) *4 # fiery breath for the dragons' Mountain (RAV) *4
# # descendants - also allows to Mountain (SHM) *4
# # use spare mana, although the Mountain (USG) *4
# # AI rarely does that. Purphoros, God of the Forge (THS) * 2
Flaming Sword (MRQ) *2 # fiery weapons as well Rage Reflection (SHM) *1
Emblem of the Warmind (FUT) *2 # gives Haste Viashino Cutthroat (ULG) *2
Beacon of Destruction (10E) *1 # repeated fire blasts Viashino Pyromancer (FGN) *4
Rage Reflection (SHM) *1 # double strike Viashino Sandscout (10E) *4
Dragon Roost (10E) *1 # endgame surprise - produces Viashino Sandstalker (VIS) *3
# # red dragons Viashino Spearhunter (M10) *4
Viashino Warrior (MIR) *2
Mountain (10E) *24 Viashino Weaponsmith (USG) *2
# Cards considered, but not included:
# Burning Cloak - AI would kill its own creatures
# Canyon Drake - flyers would be nice, but too expensive
# Crown of Flames - Firebreathing is more foolproof for the AI
# Dragon Whelp - Furnace Whelp is more foolproof
# Desert Drake - Furnace Whelp is better for the same cost
# Immolation - AI can't decide whether it'll help or destroy the
# enchanted creature
# Lizard warrior - is not a viashino, and a viashino with
# identical values exists
# Mass Hysteria - Emblem of the Warmind fits the theme better and
# doesn't help the enemy
# Pyroclasm - AI would kill its own creatures
# Viashino Skeleton - other viashinos wouldn't associate with it
# Kindled Fury - lasts only until end of turn, often wasted by AI
# Double Cleave - lasts only until end of turn, often wasted by AI
# Reflexes - first strike already provided by Flaming Sword
# Cards removed from the deck:
# Bravado - AI casts it on opponent's creatures
# Seething Song - mana acceleration would be great, bit the AI
# doesn't use the mana
# Viashino Sandscout - AI doesn't understand that it will return
# to owner's hand, may enchant it
# Viashino Bladescout - removed from Wagic
# Notes:
# Flavor deck.

View File

@@ -1,61 +1,23 @@
#NAME:Heartmender #NAME:Heartmender
# #DESC:Life will always endure,
#DESC:"No matter who #DESC:no matter the odds,
#DESC: No matter what #DESC:no matter the cost.
#DESC: We heal. #HINT:combo hold(Worldly Tutor|myhand)^cast(Worldly Tutor|myhand) targeting(Heartmender|mylibrary)^totalmananeeded({G})
#DESC: The good and the bad #HINT:alwaysattackwith(Scuzzback Marauders)
#DESC: The calm and the mad Forest (MIR) *2
#DESC: The live and the dead Forest (MRQ) *4
#DESC: We heal." Forest (10E) *4
Forest (SHM) *4
Heartmender (SHM) *4 # continuously removes -1/-1 counters Heartmender (SHM) *4
# # from all others Kitchen Finks (SHM) *4
Kitchen Finks (SHM) *4 # brings 2 life everytime it persists Lingering Tormentor (EVE) *4
Safehold Elite (SHM) *4 # cheap early defense Putrid Goblin (MH1) *2
Lingering Tormentor (EVE) *4 # attacker with Fear Raise Dead (9ED) *2
Rendclaw Trow (EVE) *4 # has Wither Rendclaw Trow (EVE) *4
Gravelgill Axeshark (SHM) *3 # 3/3 creature Safehold Elite (SHM) *4
Scuzzback Marauders (SHM) *3 # 5/2 attacker Scuzzback Marauders (SHM) *4
Restless Apparition (EVE) *2 # can get +3/+3 bonus, but does the Swamp (MRQ) *4
# # AI use that ability? Swamp (10E) *4
Swamp (SHM) *2
Vine Trellis (MRQ) *4 # cheap defender and mana source Vine Trellis (MRQ) *4
Worldly Tutor (MIR) *4
Animate Dead (RV) *4 # to bring back creatures that were
# # killed before the Heartmenders came
# # online
Forest (10E) *12
Swamp (10E) *12
# Cards considered, but not included:
# Kithkin Spellduster - has Persist, but is expensive & needs W
# River Kelpie - has Persist, but is expensive & needs blue mana
# Rattleblaze Scarecrow - too expensive for conditional persist
# Wingrattle Scarecrow - only conditional persist
# Gaea's Cradle - AI doesn't use the mana, bad thematic fit
# Cauldron Haze - effect only til end of turn, too short
# Trapjaw Kelpie - very expensive, AI doesn't use flash
# Sadistic Glee - Might help in a deck where so many creatures go
# to the Graveyard, then again it might not if it's the
# enchanted creature that dies. The point is currently moot
# though since the AI casts the spell on its opponents anyway
# Vulturous Zombie - no Persist, too expensive
# Infest - perhaps too dangerous as long as no Heartmender in play
# Harbinger of Night - definitely too dangerous
# Cards removed from the deck:
# none
# Notes:
# Doesn't perform as well as I'd like it to. The deck is very
# dependent on the Heartmenders, and sometimes they take a long
# time to come out. Suggestions?
#
# Animate Dead seems to choose targets randomly and sometimes
# picks bad ones. But it still works well in this deck if it
# targets creatures with Persist, because when these get killed
# while they are animated dead, they return from the graveyard
# without the animation enchantment. It would be nice if "Animate
# Dead" could prioritize the Kitchen Finks as targets.

View File

@@ -1,58 +1,27 @@
#NAME:Fairy Archmage #NAME:Faerie Archmage
# #DESC:Never mistake a faerie's
#DESC:"Now we're here #DESC:mischief for mere
#DESC: Now we're there #DESC:playfulness.
#DESC: Now we're gone
#DESC: Now we're back
#DESC: #DESC:
#DESC: But what happened to your defenses?" #DESC:Deck for Wagic by Bob
#HINT:combo hold(Archmage of Echoes|myhand)^cast(Archmage of Echoes|myhand)^restriction{type(Archmage of Echoes|mybattlefield)~lessthan~1}^totalmananeeded({4}{U})
Glen Elendra Archmage (EVE) *4 # ability is currently buggy ... #HINT:combo hold(Shadow Puppeteers|myhand)^cast(Shadow Puppeteers|myhand)^restriction{type(Shadow Puppeteers|mybattlefield)~lessthan~1}^totalmananeeded({6}{U})
Arcane Denial (WOC) * 2
Heartmender (SHM) *4 # continuously removes -1/-1 counters Archmage of Echoes (WOC) *4
# # from all others Counterspell (DSC) *2
Kitchen Finks (SHM) *4 # brings 2 life everytime it persists Faerie Bladecrafter (WOC) *4
Safehold Elite (SHM) *4 # cheap early defense Faerie Miscreant (M20) *4
Gravelgill Axeshark (SHM) *2 # 3/3 creature Go for the Throat (BRO) * 2
Kithkin Spellduster (EVE) *2 # Enchantment removal Island (ELD) *4
Restless Apparition (EVE) *4 # can get +3/+3 bonus Island (FDN) *4
River Kelpie (SHM) *2 # card drawer, only *2 to prevent the Island (LRW) *4
# # AI from decking itself out Island (WOE) *4
Obyra, Dreaming Duelist (WOE) *2
Oona's Gatewarden (SHM) *4 # good cheap defense & fits the theme Oona's Gatewarden (SHM) *3
Plumeveil (SHM) *2 # great defense & fits the theme Scion of Oona (LRW) *4
Shadow Puppeteers (WOC) *2
Wrath of God (10E) *4 # destroys all creatures Sleep-Cursed Faerie (WOE) *2
Surveilling Sprite (RAV) * 3
Plains (10E) *14 Swamp (ELD) *2
Island (10E) *10 Swamp (LRW) *4
Swamp (WOE) *4
# Cards considered, but not included:
# Rendclaw Trow - has persist & wither, but needs BG mana
# Lingering Tormentor - has persist * Fear, but needs B mana
# Scuzzback Marauders - has persist & high attack, but needs BR
# mana. High attack not necessary once Wrath of God is cast
# Rattleblaze Scarecrow - too expensive for conditional persist
# Wingrattle Scarecrow - only conditional persist
# Gaea's Cradle - AI doesn't use the mana, dubious thematic fit
# Cauldron Haze - effect only til end of turn, too short
# Trapjaw Kelpie - very expensive, AI doesn't use flash
# Cards removed from the deck:
# none
# Notes:
# The AI seemed pretty reluctant to cast Wrath in the test runs,
# although it did use the card from time to time
#
# River Kelpie: The AI is in danger of decking itself out if it
# has many Wither creatures, 2 Kelpies, and casts Wrath of God.
# I already reduced the Kelpies after the AI had to draw 40 cards
# in one test run, but even 2 may be too much. Will have to be
# watched.
#
# Restless Apparition: May actually prevent the Heartmender and
# Wrath of God from being played if the AI uses its plains to pump
# the apparition before checking whether it could use those plains
# to play spells. This will have to be watched too.

View File

@@ -1,46 +1,27 @@
#NAME:Snake Pit #NAME:Snake Pit
# #DESC:The serpents move unseen
#DESC:"Ssalute our ssinuossity #DESC:through the marsh, waiting
#DESC: Love our lithenesss #DESC:to strike with venomous
#DESC: Enjoy our embrace #DESC:malice
#DESC: #HINT:combo hold(Blot Out|myhand)^cast(Blot Out|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{B})
#DESC: Care for a kisss? #HINT:alwaysattackwith(Filth)
#DESC: Ssoon you will ssleep ..." Anaconda (POR) *3
Archetype of Finality (BNG) *1
Orochi Sustainer (CHK) *3 # Orochi Snake Shaman Blot Out (MAT) * 2
Sachi, Daughter of Seshiro (CHK) *2 # toughness bonus to snakes Fell (BLB) *4
Filth (JUD) *2
Anaconda (POR) *1 # 18 snakes Forest (10E) *4
Anaconda (UZS) *2 Forest (POR) *4
River Boa (ZEN) *3 Forest (RAV) *4
Hornet Cobra (LEG) *3 Gift of the Viper (MH3) *3
Python (POR) *3 Marsh Boa (PCY) *4
Skeletal Snake (POR) *1 Mire Boa (TSR) *4
Mold Adder (M10) *2 # only good against 2 colors Moss Viper (THB) *4
Boa Constrictor (MRQ) *1 # AI can't handle ability Orochi Sustainer (CHK) *2
Serpent Warrior (POR) *1 # AI doesn't realize the life loss Persistent Constrictor (DSC) *2
Serpent Assassin (POR) *3 Seshiro the Anointed (CHK) *2
Swamp (10E) *1
Weakness (M10) *2 # 10 spells to simulate poison effects Swamp (POR) *4
Paralyze (RV) *2 Swamp (RAV) *4
Last Gasp (RAV) *1 Urborg, Tomb of Yawgmoth (LTC) *3
Venomous Fangs (USG) *4 Zodiac Snake (PTK) *3
Fevered Convulsions (TMP) *1
Snake Pit (MRQ) *1
Forest (10E) *11
Swamp (10E) *13
# Cards considered, but not included:
# Creakwood Liege - not a snake
# Coiled Tinviper - mechanical snake, bad thematic fit
# Plague Wind - considered as endgame surprise, but doesn't fit
# the theme well enough
# Notes:
# I haven't found any information about the Orochi, so I can't
# tell whether they fit to the rest of the cards apart from the
# fact that they are snakes. If they don't fit, replacement
# suggestions are welcome.

View File

@@ -1,4 +1,11 @@
#NAME:Tatyova Commander #NAME:Tatyova Commander
#DESC:Years of study attuned
#DESC:Tatyova to the magic
#DESC:of the coastal woodlands
#DESC:
#DESC:Win Wagic duels to unlock
#DESC:more Commander opponents
#DESC:
#DESC:The Tatyova Commander Deck #DESC:The Tatyova Commander Deck
#DESC:Refined for Wagic by Bob #DESC:Refined for Wagic by Bob
#HINT:castpriority(commander,*) #HINT:castpriority(commander,*)

View File

@@ -1,44 +1,26 @@
#NAME:Noble Predators #NAME:Noble Predators
# #DESC:'Dangerous it is to rouse
#DESC:"We are hunters. #DESC:the lion, fatal is the
#DESC: You are prey. #DESC:tiger's tooth'
#DESC: Now run #DESC:Friedrich Schiller
#DESC: So that we can catch you." Beastmaster Ascension (ZEN) *4
Cave Tiger (UZS) *2
Noble Panther (INV) *4 # 29 furious feline friends Forest (10E) *4
Horned Cheetah (INV) *4 # lifelink Forest (INV) *3
Cave Tiger (UZS) *3 Forest (M10) *4
Grizzled Leotau (ARB) *4 # great cheap defender Forest (POR) *4
Mist Leopard (M10) *4 # shroud Grizzled Leotau (ARB) *2
Savannah Lions (RV) *4 Horned Cheetah (INV) *2
Silvercoat Lion (M10) *3 King of the Pride (MH1) *4
Jungle Lion (POR) *3 Loam Lion (WWK) *3
Mist Leopard (M10) *2
Predator's Strike (MRD) *4 # AI often wastes it, great theme fit Noble Panther (INV) *2
Aggressive Urge (10E) *4 # weak stand-in for Predatory Hunger Plains (10E) *4
Gaea's Embrace (UZS) *1 # a bit of help from mother Nature Plains (M10) *1
Plains (POR) *4
Forest (10E) *13 Pouncing Cheetah (AKH) *2
Plains (10E) *9 Pouncing Jaguar (USG) * 3
Predatory Hunger (EXO) *4
Savannah Lions (FDN) *2
# Cards considered, but not included: Silvercoat Lion (M10) *2
# Wirecat - mechanical cat doesn't fit the theme Slashing Tiger (PTK) * 2
# Red cats: Canyon Wildcat, Guma, Raging Cougar, Sabretooth Tiger,
# Whild Jhovall: No synergy with green or white
# Jhovall Queen - used as a mount, so not really a "wild" cat
# Wild Nacatl - wields a weapon, so not really wild either
# Sabertooth Nishoba - is a cat warrior
# Panther Warriors - dito
# Giant Growth - AI doesn't seem to use it at all
# Whitemane Lion - AI can't choose well which creature to return
# Cards removed from the deck:
# Predatory Hunger - This card was a fantastic fit for theme,
# focus, and power. Unfortunately the AI casts it on its
# opponent's creatures. Swap this card back in as soon as this
# problem gets solved.
# Notes:
# Flavor deck.

View File

@@ -1,37 +1,22 @@
#NAME:Treefolk #NAME:Treefolk
#DESC:Who's hiding in the tree? #DESC:In the most ancient forests
#DESC: #DESC:the trees need no protectors.
#DESC:These trees have withstood #DESC:They defend themselves.
#DESC:the anger of the elements
#DESC:for ages.
#DESC:Do you really think
#DESC:you have the slightest chance
#DESC:to even scratch their bark?
Forest (M10) *24
Timber Protector (LRW) *4
#{4}{G} ; Creature — Treefolk Warrior (4/6); Other Treefolk creatures you control get +1/+1. Other Treefolk and Forests you control are indestructible.
Dauntless Dourbark (LRW) *4
#{3}{G} ; Creature — Treefolk Warrior (*/*) ; Dauntless Dourbark's power and toughness are each equal to the number of Forests you control plus the number of Treefolk you control. Dauntless Dourbark has trample as long as you control another Treefolk.
Treefolk Seedlings (USG) *2
#{2}{G} Creature — Treefolk (2/*) ; Treefolk Seedlings's toughness is equal to the number of Forests you control.
Essence Warden (PLC) *4
#{G} ; Creature — Elf Shaman (1/1) Whenever another creature enters the battlefield, you gain 1 life.
Thornweald Archer (FUT) *4
#{1}{G}; Creature — Elf Archer (2/1) ; Reach (This creature can block creatures with flying.); Deathtouch (Creatures dealt damage by this creature are destroyed. You can divide this creature's combat damage among any of the creatures blocking or blocked by it.)
Gaea's Anthem (PLC) *4
#{1}{G}{G} Enchantment ; Creatures you control get +1/+1.
Blanchwood Armor *2
#{2}{G} ; Enchantment — Aura ; Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.); Enchanted creature gets +1/+1 for each Forest you control.
Llanowar Elves (M10) *4
#Creature — Elf Druid (1/1) {T}: Add {G} to your mana pool.
Ambassador Oak (MOR) *2 Ambassador Oak (MOR) *2
#{3}{G}Creature — Treefolk Warrior (3/3) When Ambassador Oak enters the battlefield, put a 1/1 green Elf Warrior creature token onto the battlefield. Blanchwood Armor (USG) *2
Dauntless Dourbark (LRW) *4
Dungrove Elder (M12) *2
Essence Warden (PLC) *4
Forest (10E) *4
Forest (CHK) *4
Forest (LRW) *4
Forest (M10) *4
Forest (M12) *4
Forest (USG) *4
Gaea's Anthem (PLC) *4
Imperious Perfect (LRW) *2 Imperious Perfect (LRW) *2
#{2}{G}; Creature — Elf Warrior (2/2) ; Other Elf creatures you control get +1/+1.{G}{T} :: Put a 1/1 green Elf Warrior creature token onto the battlefield Llanowar Elves (M10) *4
Mirri, Cat Warrior (10E) *1 Skyshroud Ranger (10E) *2
#{1}{G}{G} Legendary Creature — Cat Warrior (2/3) ; First strike, forestwalk, vigilance (This creature deals combat damage before creatures without first strike, it's unblockable as long as defending player controls a Forest, and attacking doesn't cause this creature to tap.) Thornweald Archer (FUT) *4
Sachi, Daughter of Seshiro (CHK) *1 Timber Protector (LRW) *4
#{2}{G}{G} Legendary Creature — Snake Shaman (1/3) Other Snake creatures you control get +0/+1. Shamans you control have "{T}add{G}{G} to your mana pool." Treefolk Seedlings (USG) *2
Mold Adder (M10) *2
#{G} Creature — Fungus Snake (1/1) ; Whenever an opponent casts a blue or black spell, you may put a +1/+1 counter on Mold Adder.

View File

@@ -1,43 +1,23 @@
#NAME:Dragons #NAME:Dragons
#DESC:Dragons are rage #DESC:Dragons are sculptors
#DESC:of power and will. #DESC:of fire, fashioning
#DESC:Dragons are artists #DESC:flames into death.
#DESC:with flames, Ashenmoor Liege (SHM) *2
#DESC:painting the world
#DESC:with fire.
#Land
Mountain (M10) *24
#Direct Damage
Lightning Bolt (M10) *4
Soulblast (10E) *1
Beacon of Destruction (10E) *1 Beacon of Destruction (10E) *1
Spitting Earth (10E) *2 Bloodmark Mentor (SHM) *4
#Generic booster
Goblin War Paint (ZEN) *2
#Dragon Generator
Dragon Roost (10E) *1
#Boost Dragon
Crucible of Fire (ALA) *4 Crucible of Fire (ALA) *4
Dragonmaster Outcast (WWK) *4
#Small dragon (4) Firespitter Whelp (FDN) *4
Rakdos Pit Dragon (DIS) *4 Goblin War Paint (ZEN) *2
Furnace Whelp (10E) *4 Lava Spike (CHK) *2
Lightning Bolt (M10) *4
#Heavy Dragon (6) Mountain (10E) *4
Shivan Dragon (M10) *2 Mountain (ALA) *4
Mountain (CHK) *4
#Legendary Dragon (6) Mountain (DTK) *2
Mountain (M10) *4
Mountain (SHM) *4
Mountain (ZEN) *4
Rorix Bladewing (ONS) *1 Rorix Bladewing (ONS) *1
Ryusei, the Falling Star (CHK) *1 Shivan Dragon (M10) *2
Thunderbreak Regent (DTK) *4
#Black Red small creatures
Bloodhall Ooze (CFX) *2
# (PSY) 2x Ashenmoor Liege not available, removed
#Ashenmoor Liege (SHM) *2
Ashenmoor Gouger (SHM) *2
Emberstrike Duo (SHM) *2
Bloodmark Mentor (SHM) *4

View File

@@ -1,68 +1,37 @@
#NAME:Badlands #NAME:Badlands
#DESC:Dangerous foes await you. #DESC:The badlands are full of
#DESC:Both undead, goblins, and #DESC:treachery; even the paths
#DESC:other abominations will #DESC:through the marshes will
#DESC:fight you recklessly. #DESC:mislead and betray
#Ankh of Mishra #DESC:
1094 #DESC:Win matches to unlock more
1094 #DESC:opponents, sets and game modes
1094 Ankh of Mishra (RV) * 4
1094 Armageddon Clock (RV) * 1
#Armageddon Clock Bad Moon (RV) * 2
1095 Black Knight (RV) * 2
#Black Vise Black Vise (RV) * 2
1097 Dancing Scimitar (RV) * 2
1097 Drudge Skeletons (RV) * 4
#Dancing Scimitar El-Hajjaj (RV) * 2
1104 Goblin King (RV) * 2
1104 Howling Mine (RV) * 1
#Howling Mine Hypnotic Specter (RV) * 2
1112 Mons's Goblin Raiders (RV) * 4
#The Rack # RV Mountains
1139 1389
1139 1390
#Bad Moon 1391
1144 1389
1144 1390
#Black Knight 1391
1145 1389
1145 1390
#Drudge Skeletons 1391
1157 Orcish Oriflamme (RV) * 2
1157 Scathe Zombies (RV) * 4
1157 Sedge Troll (RV) * 3
1157 # RV Swamps
#El-Hajjaj
1158
1158
#Hypnotic Specter
1165
1165
#Scathe Zombies
1177
1177
1177
1177
#Zombie Master
1188
#Goblin King
1296
1296
#Orcish Oriflamme
1310
1310
#Wheel of Fortune
1326
#Sedge Troll
1315
1315
1315
#Mons's Goblin Raiders
1308
1308
1308
1308
#Swamp
1373 1373
1374 1374
1375 1375
@@ -73,13 +42,6 @@
1374 1374
1375 1375
1373 1373
#Mountain The Rack (RV) * 2
1389 Wheel of Fortune (RV) * 1
1390 Zombie Master (RV) * 1
1391
1389
1390
1391
1389
1390
1391

View File

@@ -1,27 +1,25 @@
#NAME:Millage #NAME:Erosion
#DESC:"You may think that you have #DESC:All the things you most value
#DESC: a rich repository #DESC:will crumble in your hands.
#DESC: of spells and artifacts and #HINT:combo hold(Damnation|myhand)^cast(Damnation|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{B}{B})
#DESC: creatures. #HINT:combo hold(Evacuation|myhand)^cast(Evacuation|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({3}{U}{U})
#DESC: But before you know it, #HINT:combo hold(Moat|myhand)^cast(Moat|myhand)^restriction{type(Moat|mybattlefield)~lessthan~1}^totalmananeeded({2}{W}{W})
#DESC: all your possessions #HINT:combo hold(Wrath of God|myhand)^cast(Wrath of God|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{W}{W})
#DESC: will crumble
#DESC: in your hands."
Wrath of God (10E) *4
Damnation (PLC) *4 Damnation (PLC) *4
Evacuation (10E) *3
Moat (LEG) *2
Tome Scour (M10) *4
Howling Mine (M10) *4
Glimpse the Unthinkable (RAV) *4
Dream Fracture (EVE) *4 Dream Fracture (EVE) *4
Memory Erosion (ALA) *4 Evacuation (10E) *3
Traumatize (M10) *2
Forced Fruition (LRW) *1 Forced Fruition (LRW) *1
Glimpse the Unthinkable (RAV) *4
Howling Mine (M10) *4
Island (LRW) *2
Island (RAV) *4 Island (RAV) *4
Island (TSP) *4 Island (TSP) *4
Island (LRW) *2 Memory Erosion (ALA) *4
Swamp (RAV) *4 Moat (LEG) *2
Swamp (TSP) *3
Plains (RAV) *4 Plains (RAV) *4
Plains (TSP) *3 Plains (TSP) *3
Swamp (RAV) *4
Swamp (TSP) *3
Tome Scour (M10) *4
Traumatize (M10) *2
Wrath of God (10E) *4

View File

@@ -1,31 +1,21 @@
#NAME:Mind Wracked #NAME:Mind Wracked
#DESC:"What was it, what was it ... I know #DESC:Sometimes forgetting can
#DESC: there was something I wanted to tell #DESC:be an act of aggression
#DESC: you. Or was it something you wanted #HINT:castpriority(instant,enchantment,creature,*)
#DESC: to tell me? Ah, why can't I remember? Blistercoil Weird (RTR) * 4
#DESC: I know it was important! Or wasn't it? Clout of the Dominus (EVE) * 4
#DESC: Island (10E) * 4
#DESC: What am I thinking about here? And Island (M10) * 4
#DESC: are these actually my own thoughts? Island (ZEN) * 4
#DESC: Who am I anyway? And who are *you*? Lightning Bolt (M10) * 3
#DESC: Ah, never mind. I'll just kill you. Magefire Wings (ARB) * 4
#DESC: Mindwrack Liege (EVE) * 2
#DESC: You're disrupting my thoughts." Mountain (10E) * 4
Izzet Signet (GPT) * 4 # Mountain (M10) * 4
Gelectrode (GPT) * 4 # Mountain (ZEN) * 4
Wee Dragonauts (GPT) * 4 # Noggle Bandit (EVE) * 2
Stream Hopper (EVE) * 4 # Noggle Bridgebreaker (EVE) * 2
Mindwrack Liege (EVE) * 4 # Riverfall Mimic (EVE) * 4
Noggle Ransacker (EVE) * 4 # Sprite Dragon (CLB) *4
Noggle Bridgebreaker (EVE) * 4 # Tempest Angler (BLB) * 4
Magefire Wings (ARB) * 4 # Unsummon (M10) * 3
Unsummon (M10) * 2 #
Lightning Bolt (M10) * 2 #
Island (ZEN) * 3 #
Island (ZEN) * 3 #
Island (ZEN) * 3 #
Island (ZEN) * 3 #
Mountain (ZEN) * 3 #
Mountain (ZEN) * 3 #
Mountain (ZEN) * 3 #
Mountain (ZEN) * 3 #

View File

@@ -1,21 +1,24 @@
#NAME:Magnivore #NAME:Magnivore
#DESC:Do not underestimate #DESC:The Magnivore feeds from
#DESC:this... thing... because #DESC:expended magic; it grows
#DESC:it happens to be blind. #DESC:stronger from the sorcery
#DESC:For if you do, it will #DESC:of others.
#DESC:be your last mistake! #HINT:castpriority(sorcery,creature,*)
Hymn to Tourach (FEM) * 4 # #HINT:combo hold(Damnation|myhand)^cast(Damnation|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{B}{B})
Magnivore (ODY) * 4 # #HINT:combo hold(Pyroclasm|myhand)^cast(Pyroclasm|myhand)^restriction{type(creature|opponentbattlefield)~morethan~0}^totalmananeeded({1}{R})
Stone Rain (CHK) * 4 # Blightning (ALA) * 4
Mountain (RAV) * 4 # Damnation (PLC) * 4
Swamp (RAV) * 4 # Demolish (10E) * 4
Swamp (TSP) * 4 # Disentomb (M10) * 4
Mountain (TSP) * 4 # Hymn to Tourach (FEM) * 4
Damnation (PLC) * 4 # Lava Spike (CHK) * 2
Demolish (10E) * 4 # Magnivore (ODY) * 4
Mountain (LRW) * 4 # Mountain (LRW) * 4
Swamp (LRW) * 4 # Mountain (RAV) * 4
Blightning (ALA) * 4 # Mountain (TSP) * 4
Megrim (M10) * 4 # Pyroclasm (M10) * 4
Sign in Blood (M10) * 4 # Sign in Blood (M10) * 2
Pyroclasm (M10) * 4 # Stone Rain (CHK) * 4
Swamp (LRW) * 4
Swamp (RAV) * 4
Swamp (TSP) * 4

View File

@@ -1,30 +1,30 @@
#NAME:Ascendant Bloodwitch #NAME:Ascendant Bloodwitch
#DESC:Oh to sink one's teeth #DESC:To sink one's teeth
#DESC:into the warm softness #DESC:into the warm softness
#DESC:of pulsating flesh! #DESC:of pulsating flesh!
#DESC: #DESC:
#DESC:Oh to drink the liquor #DESC:To drink the liquor
#DESC:of life and passion #DESC:of life and passion
#DESC:fresh from the source! #DESC:fresh from the source!
#DESC: #DESC:
#DESC:Can it be a sin #DESC:Can it be a sin
#DESC:to revel in such bliss? #DESC:to revel in such bliss?
Dark Ritual (RV) * 2 # Arrogant Vampire (POR) * 2
Arrogant Vampire (POR) * 4 # Ascendant Evincar (10E) * 2
Vampiric Feast (POR) * 2 # Blood Seeker (ZEN) * 4
Vampiric Touch (POR) * 2 # Child of Night (M10) * 4
Stalking Bloodsucker (ODY) * 1 # Gift of Fangs (VOW) * 3
Skeletal Vampire (GPT) * 1 # Malakir Bloodwitch (ZEN) * 4
Ascendant Evincar (10E) * 2 # Necropolis Regent (RTR) * 1
Vampiric Link (PLC) * 3 # Swamp (10E) * 4
Swamp (ALA) * 4 # Swamp (ALA) * 4
Swamp (ALA) * 4 # Swamp (M10) * 4
Vampire's Bite (ZEN) * 3 # Swamp (M11) * 4
Blood Seeker (ZEN) * 4 # Swamp (POR) * 4
Vampire Nighthawk (ZEN) * 4 # Swamp (ZEN) * 4
Malakir Bloodwitch (ZEN) * 4 # Vampire Cutthroat (EMN) * 3
Child of Night (M10) * 4 # Vampire Nighthawk (ZEN) * 4
Swamp (M10) * 4 # Vampire of the Dire Moon (M20) * 4
Swamp (M10) * 4 # Vampiric Link (PLC) * 2
Swamp (M10) * 4 # Vampiric Touch (POR) * 2
Swamp (M10) * 4 # Vengeant Vampire (PZ2) * 1

View File

@@ -1,24 +1,24 @@
#NAME:Disciplination #NAME:Torpor
#DESC:"Unfortunately, my army #DESC:When the army is unoccupied
#DESC: has not managed to survive #DESC:and restless, beware the
#DESC: certain disciplinary measures #DESC:enemies within.
#DESC: that I was sadly forced to take. #HINT:combo hold(Darkest Hour|myhand)^cast(Darkest Hour|myhand)^restriction{type(Darkest Hour|mybattlefield)~lessthan~1}^totalmananeeded({B})
#DESC: But I see that you #HINT:combo hold(Light of Day|myhand)^cast(Light of Day|myhand)^restriction{type(Light of Day|mybattlefield)~lessthan~1}^totalmananeeded({3}{W})
#DESC: have brought me reinforcements. #HINT:combo hold(Moat|myhand)^cast(Moat|myhand)^restriction{type(Moat|mybattlefield)~lessthan~1}^totalmananeeded({2}{W}[W})
#DESC: How very nice of you. Thanks!" #HINT:combo hold(Stronghold Discipline|myhand)^cast(Stronghold Discipline|myhand)^restriction{type(creature|opponentbattlefield)~morethan~2}^totalmananeeded({2}{B}{B})
Paralyze (RV) * 3 # Bound in Silence (FUT) * 2
Moat (LEG) * 4 # Darkest Hour (7ED) * 4
Light of Day (TMP) * 1 # Light of Day (TMP) * 4
Torment (STH) * 4 # Moat (LEG) * 4
Sleeper Agent (USG) * 4 # Pacifism (10E) * 4
Pillory of the Sleepless (GPT) * 4 # Paralyze (RV) * 3
Pacifism (10E) * 4 # Pillory of the Sleepless (GPT) * 4
Bound in Silence (FUT) * 4 # Plains (10E) * 4
Stronghold Discipline (10E) * 4 # Plains (7ED) * 4
Recumbent Bliss (EVE) * 4 # Plains (ZEN) * 4
Swamp (ZEN) * 4 # Recumbent Bliss (EVE) * 3
Plains (ZEN) * 4 # Sleeper Agent (USG) * 4
Plains (ZEN) * 4 # Stronghold Discipline (10E) * 4
Plains (ZEN) * 4 # Swamp (10E) * 4
Swamp (ZEN) * 4 # Swamp (7ED) * 4
Swamp (ZEN) * 4 # Swamp (ZEN) * 4

View File

@@ -1,6 +1,8 @@
#NAME:Brimaz Commander #NAME:Brimaz Commander
#DESC:Brimaz draws power from his #DESC:A warrior and a spiritual
#DESC:cat army. Can you defeat him? #DESC:leader, Brimaz leads the
#DESC:pride with honor and
#DESC:humility.
#DESC: #DESC:
#DESC:Win Wagic duels to unlock #DESC:Win Wagic duels to unlock
#DESC:more Commander opponents #DESC:more Commander opponents

View File

@@ -1,29 +1,27 @@
#NAME:Enchanted Coatl #NAME:Enchanted Coatl
#DESC:Beware! The enchantresses #DESC:The ancient serpents did not
#DESC:have found a new pet! #DESC:suspect that beautiful
#DESC:And they enjoy to make it #DESC:enchantresses would bind
#DESC:stronger and stronger #DESC:them to eternal servitude.
#DESC:until no defender Ancestral Mask (MRQ) * 4
#DESC:can stop it. Argothian Enchantress (USG) * 4
Flight (RV) * 2 # Enchantress's Presence (ONS) * 4
Fastbond (RV) * 1 # Fastbond (RV) * 1
Instill Energy (RV) * 1 # Fists of Ironwood (RAV) * 1
Verduran Enchantress (RV) * 4 # Flight (RV) * 2
Web (RV) * 1 # Forest (MIR) * 4
Island (MIR) * 4 # Forest (RV) * 1
Island (MIR) * 4 # Forest (MRQ) * 4
Island (MIR) * 1 # Forest (USG) * 4
Argothian Enchantress (USG) * 4 # Ground Seal (ODY) * 1
Forest (USG) * 4 # Howling Mine (10E) * 4
Forest (USG) * 4 # Instill Energy (RV) * 1
Forest (USG) * 4 # Island (MIR) * 4
Serra's Sanctum (USG) * 1 # Island (MRQ) * 1
Ancestral Mask (MRQ) * 4 # Island (USG) * 4
Forest (MRQ) * 1 # Lorescale Coatl (ARB) * 4
Ground Seal (ODY) * 1 # Primal Frenzy (ODY) * 2
Primal Frenzy (ODY) * 2 # Serra's Sanctum (USG) * 1
Enchantress's Presence (ONS) * 4 # Verduran Enchantress (RV) * 4
Fists of Ironwood (RAV) * 1 # Web (RV) * 1
Howling Mine (10E) * 4 # Yavimaya Enchantress (10E) * 4
Yavimaya Enchantress (10E) * 4 #
Lorescale Coatl (ARB) * 4 #

View File

@@ -1,20 +1,23 @@
#NAME:Wraith's Feast #NAME:Wraith's Feast
#DESC:"My army may intimidate you, #DESC:The wraiths consume the
#DESC: but it is my hunger for life #DESC:spirit as the swamps
#DESC: that will kill you." #DESC:submerge the flesh
Dark Ritual (RV) * 4 # #HINT:castpriority(instant,*)
Drain Life (RV) * 4 # #HINT:dontblockwith(Crypt Ghast)
Cabal Coffers (TOR) * 4 # #HINT:combo hold(Drain Life|myhand)^cast(Drain Life|myhand)~totalmananeeded({6}{B})
Last Gasp (RAV) * 3 # Corrupt (SHM) * 4
Magus of the Coffers (PLC) * 4 # Crypt Ghast (GTC) * 4
Nightmare (10E) * 4 # Drain Life (RV) * 4
Terror (10E) * 3 # Go for the Throat (MBS) * 4
Corrupt (SHM) * 4 # Murder (EMN) * 3
Swamp (ALA) * 3 # Nightmare (10E) * 4
Swamp (ALA) * 3 # Squelching Leeches (JOU) * 4
Consume Spirit (M10) * 4 # Swamp (10E) * 4
Swamp (M10) * 4 # Swamp (9ED) * 4
Swamp (M10) * 4 # Swamp (ALA) * 3
Swamp (M10) * 4 # Swamp (M10) * 4
Swamp (M10) * 4 # Swamp (M11) * 4
Tendrils of Corruption (M10) * 4 # Swamp (RAV) * 4
Swamp (SHM) * 3
Tendrils of Corruption (M10) * 4
Terror (10E) * 3

View File

@@ -1,26 +1,21 @@
#NAME:Bloodhall Ooze #NAME:Bloodhall Ooze
#DESC:"Note about specimen 114: #DESC:After being nourished by living
#DESC: After being nourished by living #DESC:and decaying organic matter,
#DESC: and decaying organic matter, #DESC:the ooze grew to unfathomable
#DESC: the ooze has grown to proportions #DESC:proportions.
#DESC: we never fathomed. Bloodhall Ooze (CFX) * 4
#DESC: Actually, when I look at its Creakwood Liege (EVE) * 4
#DESC: raging tentacles slapping Forest (10E) * 4
#DESC: relentlessly against the glassy Forest (LRW) * 4
#DESC: wall of its prison, I wonder if Forest (SHM) * 4
#DESC: it might not eventually become a Forest (RV) * 1
#DESC: security risk for this labo..." Kird Ape (RV) * 4
#DESC: (scrap of paper found among the Mountain (10E) * 4
#DESC: slimy ruins of the mages' lab) Mountain (LRW) * 4
Mountain (SHM) * 3
Kird Ape (RV) * 4 # Noxious Hatchling (EVE) * 4
Forest (10E) *13 # Odious Trow (EVE) * 4
Mountain (10E) *11 # Rendclaw Trow (EVE) * 4
Tattermunge Maniac (SHM) * 4 # Stalker Hag (EVE) * 4
Odious Trow (EVE) * 4 # Tattermunge Duo (SHM) * 4
Stalker Hag (EVE) * 4 # Tattermunge Maniac (SHM) * 4
Tattermunge Duo (SHM) * 4 #
Noxious Hatchling (EVE) * 4 #
Creakwood Liege (EVE) * 4 #
Rendclaw Trow (EVE) * 4 #
Bloodhall Ooze (CFX) * 4 #

View File

@@ -1,20 +1,24 @@
#NAME:Persistence #NAME:Persistence
#DESC:See your whole army #DESC:You will fall to
#DESC:fall victim #DESC:damnation while we
#DESC:to wrath and damnation #DESC:survive and persist.
#DESC:while we persist #HINT:combo hold(Damnation|myhand)^cast(Damnation|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{B}{B})
#DESC:and survive #HINT:combo hold(Day of Judgment|myhand)^cast(Day of Judgment|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{W}{W})
#DESC:to strike you #HINT:combo hold(Wrath of God|myhand)^cast(Wrath of God|myhand)^restriction{type(creature|opponentbattlefield)~morethan~1}^totalmananeeded({2}{W}{W})
#DESC:when you are defenseless. Damnation (PLC) * 4
Wrath of God (RV) * 4 # Day of Judgment (ZEN) * 4
Damnation (PLC) * 4 # Heartmender (SHM) * 4
Kitchen Finks (SHM) * 4 # Kitchen Finks (SHM) * 4
Safehold Elite (SHM) * 4 # Kithkin Spellduster (EVE) * 1
Lingering Tormentor (EVE) * 3 # Lingering Tormentor (EVE) * 3
Kithkin Spellduster (EVE) * 1 # Plains (M10) * 4
Heartmender (SHM) * 4 # Plains (RV) * 1
Restless Apparition (EVE) * 4 # Plains (SHM) * 4
Rendclaw Trow (EVE) * 4 # Plains (ZEN) * 4
Day of Judgment (ZEN) * 4 # Rendclaw Trow (EVE) * 4
Swamp (ZEN) *11 # Restless Apparition (EVE) * 4
Plains (ZEN) *13 # Safehold Elite (SHM) * 4
Swamp (M10) * 3
Swamp (SHM) * 4
Swamp (ZEN) * 4
Wrath of God (RV) * 4

View File

@@ -1,66 +1,18 @@
#NAME:Yavimaya #NAME:Yavimaya
#DESC:Beasts of the woods and the #DESC:On the island of Yavimaya
#DESC:seas are gathering, preparing #DESC:the forest is not just
#DESC:for battle. #DESC:ancient and wild. It is
#Armageddon Clock #DESC:also sentient.
1095 #DESC:
#Obsianus Golem #DESC:Win matches to unlock more
1129 #DESC:opponents, sets and game modes
1129 #HINT:combo hold(Tranquility|myhand)^cast(Tranquility|myhand)^restriction{type(enchantment|opponentbattlefield)~morethan~0}^totalmananeeded({2}{G})
#Air Elemental Air Elemental (RV) * 4
1189 Armageddon Clock (RV) * 1
1189 Cockatrice (RV) * 1
1189 Craw Wurm (RV) * 1
1189 Elvish Archers (RV) * 2
#Lifetap # RV Forests
1205
1205
#Lord of Atlantis
1206
1206
#Merfolk of the Pearl Trident
1210
1210
1210
1210
#Phantom Monster
1213
1213
#Serendib Efreet
1221
1221
#Sea Serpent
1220
1220
#Cockatrice
1238
#Craw Wurm
1239
#Elvish Archers
1242
#Giant Spider
1249
1249
#Grizzly Bears
1250
1250
#Scryb Sprites
1264
1264
1264
#Thicket Basilisk
1267
# (PSY) Timber Wolves not available any more, replaced with Scryb Sprites
#Timber Wolves
#1268
#Tsunami
1271
#Wall of Ice
1274
#War Mammoth
1277
1277
#Forest
1386 1386
1387 1387
1388 1388
@@ -73,7 +25,9 @@
1386 1386
1387 1387
1388 1388
#Island Giant Spider (RV) * 2
Grizzly Bears (RV) * 2
# RV Islands
1392 1392
1393 1393
1394 1394
@@ -86,3 +40,14 @@
1392 1392
1393 1393
1394 1394
Lord of Atlantis (RV) * 3
Merfolk of the Pearl Trident (RV) * 4
Obsianus Golem (RV) * 2
Phantom Monster (RV) * 2
Scryb Sprites (RV) * 3
Sea Serpent (RV) * 2
Serendib Efreet (RV) * 2
Thicket Basilisk (RV) * 1
Tranquility (RV) * 1
Wall of Ice (RV) * 1
War Mammoth (RV) * 2

View File

@@ -1,21 +1,22 @@
#NAME:Bushwhacked #NAME:Crucible
#DESC:"Attack! Heal! Attack! Heal! #DESC:Destruction is the forerunner
#DESC: And again and again and again. #DESC:of new beginnings
#DESC: Oh, how I miss my days #HINT:combo hold(Armageddon|myhand)^cast(Armageddon|myhand)^restriction{type(Crucible of Worlds|mybattlefield)~morethan~0}^totalmananeeded({3}{W})
#DESC: in the goblin army! Akki Raider (BOK) * 2
#DESC: There, I never had to do Akoum Hellhound (ZNR) * 3
#DESC: TWO things in a battle!" Armageddon (A25) * 3
Swords to Plowshares (ICE) * 4 # Crucible of Worlds (5DN) * 3
Akki Raider (BOK) * 4 # Fearless Fledgling (ZNR) * 4
Lightning Helix (RAV) * 4 # Lightning Bolt (M10) * 3
Knight of Meadowgrain (LRW) * 4 # Lightning Helix (RAV) * 4
Tattermunge Maniac (SHM) * 3 # Mountain (RAV) * 3
Nobilis of War (EVE) * 3 # Mountain (M10) * 4
Plated Geopede (ZEN) * 4 # Mountain (ZEN) * 4
Steppe Lynx (ZEN) * 4 # Nobilis of War (EVE) * 2
Elite Vanguard (M10) * 3 # Plains (RAV) * 4
Lightning Bolt (M10) * 4 # Plains (M10) * 4
Plains (ZEN) * 5 # Plains (ZEN) * 4
Mountain (ZEN) * 4 # Plated Geopede (ZEN) * 4
Plains (ZEN) * 7 # Prowling Felidar (ZNR) * 2
Mountain (ZEN) * 7 # Steppe Lynx (ZEN) * 4
Swords to Plowshares (ICE) * 3

View File

@@ -1,20 +1,21 @@
#NAME:The Tarmack #NAME:Tarmogoyf's Rack
#DESC:How does it feel #DESC:The Tarmogoyf is an
#DESC:being stripped to the rack #DESC:odious creaure, feeding
#DESC:while Tarmogoyf licks #DESC:on the suffering of others
#DESC:the soles of your feet? Darksteel Ingot (DST) * 3 #
The Rack (RV) * 4 # Doom Blade (M10) * 4 #
Hymn to Tourach (FEM) * 4 # Fell (BLB) * 4 #
Darksteel Ingot (DST) * 3 # Forest (M10) * 1 #
Geth's Grimoire (DST) * 3 # Forest (RAV) * 4 #
Forest (RAV) * 5 # Forest (ZEN) * 4 #
Forest (RAV) * 4 # Geth's Grimoire (DST) * 3 #
Hypnotic Specter (10E) * 4 # Go for the Throat (MOC) * 4 #
Tarmogoyf (FUT) * 4 # Hymn to Tourach (FEM) * 4 #
Peppersmoke (LRW) * 4 # Hypnotic Specter (10E) * 4 #
Nath of the Gilt-Leaf (LRW) * 4 # Murder (DSK) * 2 #
Executioner's Capsule (ALA) * 3 # Nath of the Gilt-Leaf (LRW) * 3 #
Doom Blade (M10) * 4 # Swamp (M10) * 4 #
Weakness (M10) * 3 # Swamp (RAV) * 4 #
Swamp (ZEN) * 5 # Swamp (ZEN) * 4 #
Swamp (ZEN) * 6 # Tarmogoyf (FUT) * 4 #
The Rack (RV) * 4 #

View File

@@ -1,25 +1,23 @@
#NAME:Enchantresses #NAME:Enchantresses
#DESC:Fear the might #DESC:The enchantresses weave
#DESC:of the Enchantresses! #DESC:their spells in mighty
#DESC:If you don't take care, #DESC:webs, ready to catch the
#DESC:they will fire #DESC:foolish and unwary.
#DESC:a barrage of spells Ancestral Mask (MRQ) * 4 #
#DESC:while growing Argothian Enchantress (USG) * 4 #
#DESC:to powerful warriors Birds of Paradise (M10) * 4 #
#DESC:themselves. Blanchwood Armor (10E) * 2 #
Web (RV) * 4 # Briar Patch (MRQ) * 2 #
Wall of Blossoms (STH) * 4 # Canopy Spider (10E) * 2 #
Argothian Enchantress (USG) * 4 # Druid of the Cowl (AER) * 2 #
Yavimaya Enchantress (UDS) * 4 # Fists of Ironwood (RAV) * 4 #
Ancestral Mask (MRQ) * 3 # Forest (10E) * 4 #
Briar Patch (MRQ) * 3 # Forest (ALA) * 4 #
Fists of Ironwood (RAV) * 4 # Forest (M10) * 4 #
Forest (RAV) * 4 # Forest (M11) * 4 #
Forest (RAV) * 4 # Forest (RAV) * 4 #
Forest (RAV) * 4 # Forest (RV) * 2 #
Gaea's Anthem (PLC) * 3 # Gaea's Anthem (PLC) * 3 #
Primal Rage (10E) * 3 # Primal Rage (10E) * 3 #
Forest (ALA) * 4 # Web (RV) * 4 #
Forest (ALA) * 4 # Yavimaya Enchantress (UDS) * 4 #
Forest (ALA) * 4 #
Birds of Paradise (M10) * 4 #

View File

@@ -1,22 +1,25 @@
#NAME:Slightly Sligh #NAME:Mogg Brawlers
#DESC:The Mogg are loose! #DESC:Mogg Goblins are known for
#DESC:And they come #DESC:their size, their savagery...
#DESC:with some powerful spells #DESC:and their recklessness.
#DESC:too! #DESC:
Mogg Conscripts (TMP) * 4 # #DESC:Deck inspired by Paul Sligh
Mogg Flunkies (STH) * 4 # Consuming Fervor (AKH) * 2 #
Flame Rift (NMS) * 2 # Foundry Street Denizen (GTC) * 2 #
Mogg Sentry (PLS) * 2 # Furor of the Bitten (ISD) * 2 #
Great Furnace (MRD) * 4 # Goblin Chieftain (M10) * 2 #
Lava Spike (CHK) * 4 # Great Furnace (MRD) * 4 #
Brute Force (PLC) * 4 # Lava Spike (CHK) * 4 #
Mogg Fanatic (10E) * 4 # Legion Loyalist (GTC) * 2 #
Tattermunge Maniac (SHM) * 4 # Lightning Bolt (M10) * 4 #
Mudbrawler Cohort (SHM) * 4 # Mogg Conscripts (TMP) * 4 #
Mountain (ALA) * 4 # Mogg Flunkies (STH) * 4 #
Mountain (ALA) * 4 # Mogg Sentry (PLS) * 2 #
Mountain (ALA) * 4 # Mountain (10E) * 2 #
Mountain (ALA) * 2 # Mountain (ALA) * 4 #
Goblin Chieftain (M10) * 2 # Mountain (SHM) * 4 #
Raging Goblin (M10) * 4 # Mountain (TMP) * 4 #
Lightning Bolt (M10) * 4 # Mudbrawler Cohort (SHM) * 4 #
Raging Goblin (M10) * 4 #
Skullcrack (GTC) * 2 #
Tattermunge Maniac (SHM) * 4 #

View File

@@ -1,26 +1,21 @@
#NAME:Barbarians #NAME:Barbarians
#DESC: Being a barbarian can be really, #DESC:'War is the trade of barbarians'
#DESC: really hard. People think that all #DESC:Napoleon Bonaparte
#DESC: we are interested in is to spit out Balduvian Barbarians (ICE) * 4 #
#DESC: primitive threats like "Me barbarian! Balthor the Stout (TOR) * 2 #
#DESC: Me not like your face!", and then Barbarian General (PTK) * 2 #
#DESC: brutally crush the next best guy. Bravado (USG) * 2 #
#DESC: Halberdier (ODY) * 2 #
#DESC: This is is outrageously wrong! We can Highland Berserker (ZEN) * 4 #
#DESC: actually speak full sentences before Hobgoblin Captain (AFR) * 2 #
#DESC: we brutally crush the next best guy. Kamahl, Pit Fighter (ODY) * 2 #
#DESC: (Ugh Skullcrusher, Keldon Warlord (RV) * 4 #
#DESC: Barbarian Philosopher) Lovisa Coldeyes (CSP) * 4 #
Keldon Warlord (RV) * 4 # Mountain (4ED) * 4 #
Balduvian Barbarians (ICE) * 4 # Mountain (ICE) * 4 #
Balduvian War-Makers (ALL) * 3 # Mountain (ODY) * 4 #
Raging Goblin (POR) * 4 # Mountain (POR) * 4 #
Barbarian General (PTK) * 3 # Mountain (RV) * 4 #
Barbarian Horde (PTK) * 3 # Mountain (ZEN) * 4 #
Balthor the Stout (TOR) * 2 # Raging Goblin (POR) * 4 #
Halberdier (ODY) * 3 # Sardian Cliffstomper (BRO) * 4 #
Kamahl, Pit Fighter (ODY) * 2 #
Jeska, Warrior Adept (JUD) * 2 #
Lovisa Coldeyes (CSP) * 2 #
Highland Berserker (ZEN) * 4 #
Mountain (ZEN) *24 #

View File

@@ -1,20 +1,21 @@
#NAME:Soul Blossom Procession #NAME:Soul Blossom Procession
#DESC:"Beware! #DESC:The most powerful sorcerors
#DESC: they come from everywhere!" #DESC:can conjure biddable armies
#DESC: #DESC:to serve their every desire.
#DESC:Meet a diverse army Bitterblossom (MOR) * 4 #
#DESC:drafted by unusual means. Deathbringer Liege (EVE) * 4 #
Swords to Plowshares (ICE) * 4 # Deathgreeter (ALA) * 4 #
Raise the Alarm (MRD) * 4 # Glorious Anthem (10E) * 4 #
Plains (MRD) * 7 # Plains (10E) * 2 #
Swamp (MRD) * 5 # Plains (ALA) * 4 #
Swamp (MRD) * 5 # Plains (ICE) * 4 #
Skeletal Vampire (GPT) * 2 # Plains (MRD) * 4 #
Glorious Anthem (10E) * 4 # Raise the Alarm (MRD) * 4 #
Spectral Procession (SHM) * 4 # Skeletal Vampire (GPT) * 2 #
Bitterblossom (MOR) * 4 # Soul Warden (M10) * 4 #
Voracious Hatchling (EVE) * 2 # Spectral Procession (SHM) * 4 #
Deathbringer Liege (EVE) * 4 # Swamp (ALA) * 2 #
Plains (ALA) * 7 # Swamp (ICE) * 4 #
Deathgreeter (ALA) * 4 # Swamp (MRD) * 4 #
Soul Warden (M10) * 4 # Swords to Plowshares (ICE) * 4 #
Voracious Hatchling (EVE) * 2 #

View File

@@ -1,18 +1,25 @@
#NAME:Blind Faith #NAME:Blind Faith
#DESC:"No more Dark and Light #DESC:Some clerics follow the life-
#DESC: for it is one that we fight" #DESC:giving path of righteousness.
Unholy Strength (RV) * 2 # #DESC:Others invoke the horrors
Holy Strength (RV) * 2 # #DESC:of the darkness.
Silent Attendant (USG) * 2 # #HINT:castpriority(creature,*)
Temple Acolyte (P02) * 4 # #HINT:combo hold(Profane Prayers|myhand)^cast(Profane Prayers|myhand)^restriction{type(creature|mybattlefield)~morethan~2}^totalmananeeded({2}{B}{B})
Priest of Gix (USG) * 4 # #HINT:alwaysattackwith(Vile Deacon)
Teroh's Faithful (TOR) * 2 # Doubtless One (ONS) * 4 #
Doubtless One (ONS) * 4 # Elenda's Hierophant (LCC) * 4 #
Profane Prayers (ONS) * 4 # Nullpriest of Oblivion (ZNR) * 2 #
Akroma's Devoted (LGN) * 2 # Plains (10E) * 4 #
Soul Warden (10E) * 4 # Plains (ALA) * 4 #
Venerable Monk (10E) * 2 # Plains (M10) * 4 #
Ancestor's Chosen (10E) * 2 # Profane Prayers (ONS) * 4 #
Plains (ALA) *11 # Soul's Attendant (ROE) * 2
Swamp (ALA) *11 # Soul Warden (10E) * 4 #
Acolyte of Xathrid (M10) * 4 # Swamp (10E) * 4 #
Swamp (ALA) * 4 #
Swamp (M10) * 4 #
Temple Acolyte (P02) * 4 #
Teroh's Faithful (TOR) * 2 #
Venerable Monk (10E) * 2 #
Vile Deacon (LGN) * 4 #
Vito, Thorn of the Dusk Rose (M21) * 4 #

View File

@@ -1,15 +1,24 @@
#NAME:Planet of the Apes #NAME:Planet of the Apes
#DESC:A planet where apes #DESC:Stealthy, ferocious and
#DESC:evolved from men? #DESC:intelligent, the apes
#DESC:There's got to be an answer! #DESC:are rulers of their
Tree Monkey (P02) *4 #DESC:forest domain.
Kird Ape (RV) *4 Alpha Status (SCG) * 4
Barbary Apes (LEG) *4 Ancient Silverback (UDS) * 1
Zodiac Monkey (PTK) *4 Barbary Apes (LEG) * 4
Gorilla Warrior (USG) *4 Forest (5ED) * 4
Gorilla Pack (ICE) *4 Forest (ICE) * 4
Raging Gorilla (VIS) *4 Forest (MIR) * 4
Gorilla Chieftain (ALL) *4 Forest (POR) * 2
Ancient Silverback (UDS) *4 Forest (RV) * 4
Forest (RV) *16 Gorilla Chieftain (ALL) * 2
Mountain (RV) *8 Gorilla Pack (ICE) * 3
Gorilla Warrior (USG) * 3
Hidden Gibbons (ULG) * 4
Silverback Shaman (M20) * 1
Towering Gibbon (J22) * 4
Tree Monkey (P02) * 4
Uktabi Orangutan (VIS) * 2
Unnatural Growth (MID) * 2
Yavimaya, Cradle of Growth (MH2) * 4
Zodiac Monkey (PTK) * 4

View File

@@ -1,4 +1,9 @@
#NAME:Ranar Commander #NAME:Ranar Commander
#DESC:Ranar swore never to
#DESC:abandon his post. For
#DESC:him, guardianship is a
#DESC:sacred honor.
#DESC:
#DESC:Kaldheim Commander Deck #DESC:Kaldheim Commander Deck
#DESC:Phantom Premonition #DESC:Phantom Premonition
#HINT:castpriority(commander,*) #HINT:castpriority(commander,*)

View File

@@ -1,19 +1,23 @@
#NAME:Balefire Blast #NAME:Balefire Blast
#DESC:"Order and chaos #DESC:Order and chaos
#DESC: can be united #DESC:can be united
#DESC: by the raw power #DESC:by the power of
#DESC: of pure fanaticism." #DESC:pure fanaticism.
Boros Swiftblade (RAV) * 4 # Balefire Liege (EVE) * 4 #
Lightning Helix (RAV) * 4 # Battlegate Mimic (EVE) * 3 #
Boros Recruit (RAV) * 4 # Belligerent Hatchling (EVE) * 4 #
Mountain (RAV) *12 # Boros Recruit (RAV) * 4 #
Plains (RAV) *12 # Boros Swiftblade (RAV) * 4 #
Skyknight Legionnaire (RAV) * 3 # Bull Cerodon (ALA) * 1 #
Hobgoblin Dragoon (EVE) * 1 # Cerodon Yearling (ARB) * 1 #
Rise of the Hobgoblins (EVE) * 2 # Hearthfire Hobgoblin (EVE) * 4 #
Belligerent Hatchling (EVE) * 4 # Hobgoblin Dragoon (EVE) * 1 #
Nobilis of War (EVE) * 4 # Lightning Helix (RAV) * 4 #
Hearthfire Hobgoblin (EVE) * 4 # Mountain (ALA) * 4 #
Balefire Liege (EVE) * 4 # Mountain (M13) * 4 #
Bull Cerodon (ALA) * 1 # Mountain (RAV) * 4 #
Cerodon Yearling (ARB) * 1 # Nobilis of War (EVE) * 3 #
Plains (ALA) * 4 #
Plains (M13) * 4 #
Plains (RAV) * 4 #
Skyknight Legionnaire (RAV) * 3 #

View File

@@ -1,25 +1,26 @@
#NAME:Wrath #NAME:Wrath
#DESC:O miserable of happy #DESC:The truly wrathful person
#DESC:Is this the end #DESC:harms themselves as much as
#DESC:Of this new glorious world #DESC:their enemies
# Land(s) #DESC:
Plains (8ED) * 21 #DESC:Win matches to unlock more
#DESC:opponents, sets and game modes
# Creature(s) #HINT:combo hold(Armageddon|myhand)^cast(Armageddon|myhand)^restriction{type(creature|mybattlefield)~morethan~1}^totalmananeeded({3}{W})
#HINT:combo hold(Wrath of God|myhand)^cast(Wrath of God|myhand)^restriction{type(creature|opponentbattlefield)~morethan~2}^totalmananeeded({2}{W}{W})
Armageddon (VMA) * 4
Crusade (DDF) * 4
Guardians of Akrasa (ALA) * 4 Guardians of Akrasa (ALA) * 4
Paladin en-Vec (9ED) * 1 Paladin en-Vec (9ED) * 1
Plains (8ED) * 4
Plains (9ED) * 4
Plains (M10) * 4
Plains (ALA) * 4
Plains (DDF) * 4
Plains (10E) * 1
Savannah Lions (8ED) * 4 Savannah Lions (8ED) * 4
Serra Angel (8ED) * 4 Serra Angel (8ED) * 4
Sigiled Paladin (ALA) * 4 Sigiled Paladin (ALA) * 4
Skyhunter Skirmisher (5DN) * 3 Skyhunter Skirmisher (5DN) * 3
White Knight (M10) * 4
# Enchantment(s)
Crusade (DDF) * 4
# Instant(s)
Swords to Plowshares (DDF) * 4 Swords to Plowshares (DDF) * 4
White Knight (M10) * 4
# Sorcery(s) Wrath of God (8ED) * 3
Armageddon (VMA) * 4
Wrath of God (8ED) * 3

View File

@@ -1,23 +1,23 @@
#NAME:Life & Death #NAME:Life & Death
#DESC:"Life causes death. #DESC:'As man, perhaps, the moment
#DESC: Death provides the basis #DESC:of his breath, / Receives the
#DESC: for new life. #DESC:lurking principle of death'
#DESC: #DESC:Alexander Pope
#DESC: Life and Death do not contradict, #HINT:combo hold(Zealous Persecution|myhand)^cast(Zealous Persecution|myhand)^restriction{type(creature|mybattlefield)~morethan~2}^totalmananeeded({W}{B})
#DESC: but complement each other. Athreos, God of Passage (JOU) * 2 #
#DESC: Deathbringer Liege (EVE) * 4 #
#DESC: Understanding their interaction Harvest Gwyllion (EVE) * 2 #
#DESC: is the secret of our strength." Moonrise Cleric (BLB) * 2 #
Dark Ritual (RV) * 4 # Mourning Thrull (GPT) * 4 #
Righteous War (VIS) * 4 # Nightsky Mimic (EVE) * 2 #
Vindicate (APC) * 4 # Nip Gwyllion (EVE) * 4 #
Swamp (RAV) *11 # Plains (M13) * 4 #
Plains (RAV) *11 # Plains (RAV) * 4 #
Mourning Thrull (GPT) * 4 # Plains (RV) * 4 #
Nip Gwyllion (EVE) * 4 # Righteous War (VIS) * 4 #
Harvest Gwyllion (EVE) * 2 # Swamp (M13) * 4 #
Stillmoon Cavalier (EVE) * 2 # Swamp (RAV) * 4 #
Voracious Hatchling (EVE) * 4 # Swamp (RV) * 4 #
Deathbringer Liege (EVE) * 4 # Vindicate (APC) * 4 #
Restless Apparition (EVE) * 2 # Voracious Hatchling (EVE) * 4 #
Zealous Persecution (ARB) * 4 # Zealous Persecution (ARB) * 4 #

View File

@@ -1,58 +1,16 @@
#Mill /Artifact Game for AI
#NAME:Inquisitor #NAME:Inquisitor
#DESC:Black vises in Ivory Towers #DESC:'The voice of nature is
#DESC:await you, when facing #DESC:worthless in front of
#DESC:this artificially created army, #DESC:the Inquisition'
#DESC:designed to completely stop #DESC:Friedrich Schiller
#DESC:your progress, and then #DESC:
#DESC:torture you to death. #DESC:Win matches to unlock more
#4x Howling Mine #DESC:opponents, sets and game modes
129598 Black Vise (RV) * 4
129598 Clockwork Beast (RV) * 4
129598 Dancing Scimitar (RV) * 4
129598 Howling Mine (10E) * 4
#4 x Black Vise # 10E Islands
1097
1097
1097
1097
#4x Ivory Tower
1115
1115
1115
1115
#4x Obsianus Golem
1129
1129
1129
1129
#4xTower Gargoyle
174924
174924
174924
174924
#4xLiving Wall
1123
1123
1123
1123
#4x Dancing Scimitar
1104
1104
1104
1104
#4x Clockwork Beast
1101
1101
1101
1101
#4x Master of Etherium
175114
175114
175114
175114
#Lands
#10islands
129606 129606
129606 129606
129606 129606
@@ -63,15 +21,11 @@
129607 129607
129608 129608
129609 129609
#7swamps Ivory Tower (RV) * 4
129755 Living Wall (RV) * 4
129756 Master of Etherium (ALA) * 4
129757 Obsianus Golem (RV) * 4
129754 # 10E Plains
129755
129756
129757
#7Plains
129681 129681
129682 129682
129683 129683
@@ -79,3 +33,12 @@
129681 129681
129682 129682
129683 129683
# 10E Swamps
129755
129756
129757
129754
129755
129756
129757
Tower Gargoyle (ALA) * 4

View File

@@ -1,22 +1,23 @@
#NAME:Shatter #NAME:Shatter
#DESC:See all your efforts shattered #DESC:See your efforts shattered
#DESC:by the all-consuming power #DESC:by righteous fury
#DESC:of righteous fury. #DESC:
# Land(s) #DESC:Win matches to unlock more
Mountain (8ED) * 12 #DESC:opponents, sets and game modes
Plains (8ED) * 12
# Creature(s)
Anaba Bodyguard (10E) * 4 Anaba Bodyguard (10E) * 4
Ancestor's Chosen (10E) * 4 Ancestor's Chosen (10E) * 4
Angelic Wall (10E) * 4 Angelic Wall (10E) * 4
Rock Badger (10E) * 4
Steadfast Guard (10E) * 4
Suntail Hawk (8ED) * 2
Thundering Giant (10E) * 4
# Instant(s)
Disenchant (M20) * 2 Disenchant (M20) * 2
Lightning Bolt (M10) * 4 Lightning Bolt (M10) * 4
Mountain (10E) * 4
Mountain (8ED) * 4
Mountain (M10) * 4
Plains (10E) * 4
Plains (8ED) * 4
Plains (M10) * 4
Rock Badger (10E) * 4
Shatter (8ED) * 2 Shatter (8ED) * 2
Tempest of Light (MRD) * 2 Steadfast Guard (10E) * 4
Suntail Hawk (8ED) * 2
Tempest of Light (MRD) * 2
Thundering Giant (10E) * 4

View File

@@ -88,4 +88,4 @@ auto=@movedto(other *|battlefield) restriction{type(*[isflipped]|nonbattlezone)~
auto=@each cleanup:all(*|myBattlefield) resetDamage auto=@each cleanup:all(*|myBattlefield) resetDamage
#Stun counter #Stun counter
auto=@untapped(*[counter{0/0.1.Stun}]|mybattlefield):name(Stunned creature can't untap) name(Stunned creature can't untap) all(trigger[to]) transforms((,newability[tap(noevent)],newability[counter(0/0.-1.Stun)])) oneshot auto=@untapped(*[counter{0/0.1.Stun}]|mybattlefield):name(Stunned creature can't untap) name(Stunned creature can't untap) all(trigger[to]) transforms((,newability[tap(noevent)],newability[counter(0/0.-1.Stun)])) oneshot

View File

@@ -1,5 +1,5 @@
include randomCommander.txt include randomCommander.txt
name=Random Commander From File name=Random Everlasting Commander
unlock=prx_rnddeck unlock=prx_rnddeck
[INIT] [INIT]
mode=random_commander_from_file mode=random_commander_from_file

File diff suppressed because it is too large Load Diff

View File

@@ -3,219 +3,9 @@ author=Wagic Team
name=Commander 2021 name=Commander 2021
orderindex=COM-P.C21 orderindex=COM-P.C21
year=2021-04-23 year=2021-04-23
total=371 total=410
[/meta] [/meta]
[card] [card]
primitive=Myr
id=-519288
rarity=T
[/card]
[card]
primitive=Eldrazi
id=-519281
rarity=T
[/card]
[card]
primitive=Saproling
id=-519276
rarity=T
[/card]
[card]
primitive=Spirit
id=-519265
rarity=T
[/card]
[card]
primitive=Elemental
id=-519246
rarity=T
[/card]
[card]
primitive=Elephant
id=-519242
rarity=T
[/card]
[card]
primitive=Beast
id=-519238
rarity=T
[/card]
[card]
primitive=Elephant
id=-519231
rarity=T
[/card]
[card]
primitive=Hydra
id=-519229
rarity=T
[/card]
[card]
primitive=Insect
id=-519228
rarity=T
[/card]
[card]
primitive=Insect
id=-519227
rarity=T
[/card]
[card]
primitive=Wurm
id=-519225
rarity=T
[/card]
[card]
primitive=Beast
id=-519223
rarity=T
[/card]
[card]
primitive=Beast
id=-519221
rarity=T
[/card]
[card]
primitive=Thopter
id=-519216
rarity=T
[/card]
[card]
primitive=Thopter
id=-519212
rarity=T
[/card]
[card]
primitive=Zombie
id=-519173
rarity=T
[/card]
[card]
primitive=Drake
id=-519166
rarity=T
[/card]
[card]
primitive=Kraken
id=-519162
rarity=T
[/card]
[card]
primitive=Lizard
id=-519161
rarity=T
[/card]
[card]
primitive=Construct
id=-519157
rarity=T
[/card]
[card]
primitive=Boar
id=-519153
rarity=T
[/card]
[card]
primitive=Horror
id=-519129
rarity=T
[/card]
[card]
primitive=Eldrazi
id=-519117
rarity=T
[/card]
[card]
primitive=Golem
id=-518475
rarity=T
[/card]
[card]
primitive=Fractal
id=-518473
rarity=T
[/card]
[card]
primitive=Fractal
id=-518468
rarity=T
[/card]
[card]
primitive=Inkling
id=-518467
rarity=T
[/card]
[card]
primitive=Beast
id=-518465
rarity=T
[/card]
[card]
primitive=Fractal
id=-518463
rarity=T
[/card]
[card]
primitive=Pest
id=-518461
rarity=T
[/card]
[card]
primitive=Fractal
id=-518460
rarity=T
[/card]
[card]
primitive=Fractal
id=-518457
rarity=T
[/card]
[card]
primitive=Demon
id=-518441
rarity=T
[/card]
[card]
primitive=Inkling
id=-518436
rarity=T
[/card]
[card]
primitive=Pest
id=-518432
rarity=T
[/card]
[card]
primitive=Kraken
id=-518429
rarity=T
[/card]
[card]
primitive=Target
id=-518422
rarity=T
[/card]
[card]
primitive=Construct
id=-518411
rarity=T
[/card]
[card]
primitive=Inkling
id=-518410
rarity=T
[/card]
[card]
primitive=Elemental
id=-518310
rarity=T
[/card]
[card]
primitive=Inkling
id=-518308
rarity=T
[/card]
[card]
primitive=Breena, the Demagogue primitive=Breena, the Demagogue
id=518307 id=518307
rarity=M rarity=M
@@ -938,7 +728,7 @@ rarity=C
[card] [card]
primitive=Greed primitive=Greed
id=519180 id=519180
rarity=R rarity=U
[/card] [/card]
[card] [card]
primitive=Infernal Offering primitive=Infernal Offering
@@ -1703,7 +1493,7 @@ rarity=R
[card] [card]
primitive=Lonely Sandbar primitive=Lonely Sandbar
id=519333 id=519333
rarity=C rarity=U
[/card] [/card]
[card] [card]
primitive=Lumbering Falls primitive=Lumbering Falls
@@ -1788,7 +1578,7 @@ rarity=R
[card] [card]
primitive=Secluded Steppe primitive=Secluded Steppe
id=519350 id=519350
rarity=C rarity=U
[/card] [/card]
[card] [card]
primitive=Shivan Reef primitive=Shivan Reef
@@ -1851,6 +1641,406 @@ id=519362
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Breena, the Demagogue
id=521597
rarity=M
[/card]
[card]
primitive=Felisa, Fang of Silverquill
id=521598
rarity=M
[/card]
[card]
primitive=Veyran, Voice of Duality
id=521599
rarity=M
[/card]
[card]
primitive=Zaffai, Thunder Conductor
id=521600
rarity=M
[/card]
[card]
primitive=Gyome, Master Chef
id=521601
rarity=M
[/card]
[card]
primitive=Willowdusk, Essence Seer
id=521602
rarity=M
[/card]
[card]
primitive=Alibou, Ancient Witness
id=521603
rarity=M
[/card]
[card]
primitive=Osgir, the Reconstructor
id=521604
rarity=M
[/card]
[card]
primitive=Adrix and Nev, Twincasters
id=521605
rarity=M
[/card]
[card]
primitive=Esix, Fractal Bloom
id=521606
rarity=M
[/card]
[card]
primitive=Angel of the Ruins
id=521607
rarity=R
[/card]
[card]
primitive=Archaeomancer's Map
id=521608
rarity=R
[/card]
[card]
primitive=Bronze Guardian
id=521609
rarity=R
[/card]
[card]
primitive=Combat Calligrapher
id=521610
rarity=R
[/card]
[card]
primitive=Digsite Engineer
id=521611
rarity=R
[/card]
[card]
primitive=Excavation Technique
id=521612
rarity=R
[/card]
[card]
primitive=Guardian Archon
id=521613
rarity=R
[/card]
[card]
primitive=Losheel, Clockwork Scholar
id=521614
rarity=R
[/card]
[card]
primitive=Monologue Tax
id=521615
rarity=R
[/card]
[card]
primitive=Nils, Discipline Enforcer
id=521616
rarity=R
[/card]
[card]
primitive=Promise of Loyalty
id=521617
rarity=R
[/card]
[card]
primitive=Scholarship Sponsor
id=521618
rarity=R
[/card]
[card]
primitive=Commander's Insight
id=521619
rarity=R
[/card]
[card]
primitive=Curiosity Crafter
id=521620
rarity=R
[/card]
[card]
primitive=Dazzling Sphinx
id=521621
rarity=R
[/card]
[card]
primitive=Deekah, Fractal Theorist
id=521622
rarity=R
[/card]
[card]
primitive=Inspiring Refrain
id=521623
rarity=R
[/card]
[card]
primitive=Muse Vortex
id=521624
rarity=R
[/card]
[card]
primitive=Octavia, Living Thesis
id=521625
rarity=R
[/card]
[card]
primitive=Perplexing Test
id=521626
rarity=R
[/card]
[card]
primitive=Replication Technique
id=521627
rarity=R
[/card]
[card]
primitive=Sly Instigator
id=521628
rarity=R
[/card]
[card]
primitive=Spawning Kraken
id=521629
rarity=R
[/card]
[card]
primitive=Theoretical Duplication
id=521630
rarity=R
[/card]
[card]
primitive=Author of Shadows
id=521631
rarity=R
[/card]
[card]
primitive=Blight Mound
id=521632
rarity=R
[/card]
[card]
primitive=Bold Plagiarist
id=521633
rarity=R
[/card]
[card]
primitive=Cunning Rhetoric
id=521634
rarity=R
[/card]
[card]
primitive=Essence Pulse
id=521635
rarity=R
[/card]
[card]
primitive=Fain, the Broker
id=521636
rarity=R
[/card]
[card]
primitive=Incarnation Technique
id=521637
rarity=R
[/card]
[card]
primitive=Keen Duelist
id=521638
rarity=R
[/card]
[card]
primitive=Marshland Bloodcaster
id=521639
rarity=R
[/card]
[card]
primitive=Stinging Study
id=521640
rarity=R
[/card]
[card]
primitive=Tivash, Gloom Summoner
id=521641
rarity=R
[/card]
[card]
primitive=Veinwitch Coven
id=521642
rarity=R
[/card]
[card]
primitive=Audacious Reshapers
id=521643
rarity=R
[/card]
[card]
primitive=Battlemage's Bracers
id=521644
rarity=R
[/card]
[card]
primitive=Creative Technique
id=521645
rarity=R
[/card]
[card]
primitive=Cursed Mirror
id=521646
rarity=R
[/card]
[card]
primitive=Fiery Encore
id=521647
rarity=R
[/card]
[card]
primitive=Inferno Project
id=521648
rarity=R
[/card]
[card]
primitive=Laelia, the Blade Reforged
id=521649
rarity=R
[/card]
[card]
primitive=Radiant Performer
id=521650
rarity=R
[/card]
[card]
primitive=Rionya, Fire Dancer
id=521651
rarity=R
[/card]
[card]
primitive=Rousing Refrain
id=521652
rarity=R
[/card]
[card]
primitive=Ruin Grinder
id=521653
rarity=R
[/card]
[card]
primitive=Surge to Victory
id=521654
rarity=R
[/card]
[card]
primitive=Blossoming Bogbeast
id=521655
rarity=R
[/card]
[card]
primitive=Ezzaroot Channeler
id=521656
rarity=R
[/card]
[card]
primitive=Fractal Harness
id=521657
rarity=R
[/card]
[card]
primitive=Guardian Augmenter
id=521658
rarity=R
[/card]
[card]
primitive=Healing Technique
id=521659
rarity=R
[/card]
[card]
primitive=Paradox Zone
id=521660
rarity=R
[/card]
[card]
primitive=Pest Infestation
id=521661
rarity=R
[/card]
[card]
primitive=Ruxa, Patient Professor
id=521662
rarity=R
[/card]
[card]
primitive=Sequence Engine
id=521663
rarity=R
[/card]
[card]
primitive=Sproutback Trudge
id=521664
rarity=R
[/card]
[card]
primitive=Trudge Garden
id=521665
rarity=R
[/card]
[card]
primitive=Yedora, Grave Gardener
id=521666
rarity=R
[/card]
[card]
primitive=Inkshield
id=521667
rarity=R
[/card]
[card]
primitive=Oversimplify
id=521668
rarity=R
[/card]
[card]
primitive=Reinterpret
id=521669
rarity=R
[/card]
[card]
primitive=Revival Experiment
id=521670
rarity=R
[/card]
[card]
primitive=Wake the Past
id=521671
rarity=R
[/card]
[card]
primitive=Elementalist's Palette
id=521672
rarity=R
[/card]
[card]
primitive=Geometric Nexus
id=521673
rarity=R
[/card]
[card]
primitive=Tempting Contract
id=521674
rarity=R
[/card]
[card]
primitive=Triplicate Titan
id=521675
rarity=R
[/card]
[card]
primitive=Witch's Clinic
id=521676
rarity=R
[/card]
[card]
primitive=Tranquil Thicket primitive=Tranquil Thicket
id=519363 id=519363
rarity=C rarity=C

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
author=Wagic Team author=Wagic Team
name=Dominaria United Commander name=Dominaria United Commander
year=2022-09-09 year=2022-09-09
total=219 total=241
[/meta] [/meta]
[card] [card]
primitive=Dihada, Binder of Wills primitive=Dihada, Binder of Wills
@@ -250,6 +250,11 @@ id=578711
rarity=M rarity=M
[/card] [/card]
[card] [card]
primitive=Jared Carthalion
id=578712
rarity=M
[/card]
[card]
primitive=Historian's Boon primitive=Historian's Boon
id=580393 id=580393
rarity=R rarity=R

View File

@@ -46,7 +46,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Seasoned Cathar primitive=Seasoned Cathar
id=685822 id=685823
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -66,7 +66,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Avacyn, the Purifier primitive=Avacyn, the Purifier
id=685826 id=685827
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -86,7 +86,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Brisela, Voice of Nightmares primitive=Brisela, Voice of Nightmares
id=686144 id=686145
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -181,7 +181,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Luminous Phantom primitive=Luminous Phantom
id=685848 id=685849
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -256,7 +256,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Incited Rabble primitive=Incited Rabble
id=685863 id=685864
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -266,7 +266,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Twinblade Invocation primitive=Twinblade Invocation
id=685865 id=685866
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -291,7 +291,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Wedding Festivity primitive=Wedding Festivity
id=685870 id=685871
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -301,7 +301,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Perfected Form primitive=Perfected Form
id=685872 id=685873
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -316,7 +316,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Biolume Serpent primitive=Biolume Serpent
id=685875 id=685876
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -341,7 +341,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Ghostly Castigator primitive=Ghostly Castigator
id=685880 id=685881
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -356,7 +356,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Insectile Aberration primitive=Insectile Aberration
id=685883 id=685884
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -371,7 +371,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Final Iteration primitive=Final Iteration
id=685886 id=685887
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -401,7 +401,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Grisly Anglerfish primitive=Grisly Anglerfish
id=685892 id=685893
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -431,7 +431,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Lanterns' Lift primitive=Lanterns' Lift
id=685898 id=685899
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -501,7 +501,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Cipherbound Spirit primitive=Cipherbound Spirit
id=685912 id=685913
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -536,7 +536,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Awoken Horror primitive=Awoken Horror
id=685919 id=685920
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -576,7 +576,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Lord of Lineage primitive=Lord of Lineage
id=685927 id=685928
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -616,7 +616,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Depraved Harvester primitive=Depraved Harvester
id=685935 id=685936
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -631,7 +631,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Awoken Demon primitive=Awoken Demon
id=685938 id=685939
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -701,7 +701,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Deluge of the Dead primitive=Deluge of the Dead
id=685952 id=685953
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -721,7 +721,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Chittering Host primitive=Chittering Host
id=686143 id=686144
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -751,7 +751,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Bloodsoaked Reveler primitive=Bloodsoaked Reveler
id=685961 id=685962
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -806,7 +806,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Bloodbat Summoner primitive=Bloodbat Summoner
id=685972 id=685973
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -871,7 +871,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Conduit of Emrakul primitive=Conduit of Emrakul
id=685985 id=685986
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -906,7 +906,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Vildin-Pack Alpha primitive=Vildin-Pack Alpha
id=685992 id=685993
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -916,7 +916,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Hanweir, the Writhing Township primitive=Hanweir, the Writhing Township
id=686145 id=686146
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -926,7 +926,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Bane of Hanweir primitive=Bane of Hanweir
id=685995 id=685996
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -946,7 +946,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Terror of Kruin Pass primitive=Terror of Kruin Pass
id=685999 id=686000
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1001,7 +1001,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Erupting Dreadwolf primitive=Erupting Dreadwolf
id=686010 id=686011
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1046,7 +1046,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Moonrise Intruder primitive=Moonrise Intruder
id=686019 id=686020
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1121,7 +1121,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Krallenhorde Howler primitive=Krallenhorde Howler
id=686034 id=686035
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1146,7 +1146,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Garruk, the Veil-Cursed primitive=Garruk, the Veil-Cursed
id=686039 id=686040
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1181,7 +1181,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Timber Shredder primitive=Timber Shredder
id=686046 id=686047
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1206,7 +1206,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Howlpack Alpha primitive=Howlpack Alpha
id=686051 id=686052
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1236,7 +1236,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Moonscarred Werewolf primitive=Moonscarred Werewolf
id=686057 id=686058
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1251,7 +1251,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Howling Chorus primitive=Howling Chorus
id=686060 id=686061
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1306,7 +1306,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Howlpack of Estwald primitive=Howlpack of Estwald
id=686071 id=686072
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1341,7 +1341,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Arlinn, Embraced by the Moon primitive=Arlinn, Embraced by the Moon
id=686078 id=686079
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1401,7 +1401,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Ravager of the Fells primitive=Ravager of the Fells
id=686090 id=686091
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1486,7 +1486,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Chalice of Death primitive=Chalice of Death
id=686107 id=686108
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1506,7 +1506,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Aurora of Emrakul primitive=Aurora of Emrakul
id=686111 id=686112
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1536,7 +1536,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Scrounged Scythe primitive=Scrounged Scythe
id=686117 id=686118
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1561,7 +1561,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Ashmouth Blade primitive=Ashmouth Blade
id=686122 id=686123
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1656,7 +1656,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Ormendahl, Profane Prince primitive=Ormendahl, Profane Prince
id=686141 id=686142
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1841,7 +1841,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Krallenhorde Howler primitive=Krallenhorde Howler
id=688901 id=688902
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1851,7 +1851,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Arlinn, Embraced by the Moon primitive=Arlinn, Embraced by the Moon
id=688903 id=688904
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1861,7 +1861,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Ravager of the Fells primitive=Ravager of the Fells
id=688905 id=688906
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1876,7 +1876,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Lord of Lineage primitive=Lord of Lineage
id=688878 id=688879
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2486,7 +2486,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Seasoned Cathar primitive=Seasoned Cathar
id=687803 id=687804
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2496,7 +2496,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Avacyn, the Purifier primitive=Avacyn, the Purifier
id=687805 id=687806
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2506,7 +2506,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Luminous Phantom primitive=Luminous Phantom
id=687807 id=687808
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2516,7 +2516,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Incited Rabble primitive=Incited Rabble
id=687809 id=687810
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2526,7 +2526,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Twinblade Invocation primitive=Twinblade Invocation
id=687811 id=687812
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2536,7 +2536,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Wedding Festivity primitive=Wedding Festivity
id=687813 id=687814
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2546,7 +2546,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Perfected Form primitive=Perfected Form
id=687815 id=687816
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2556,7 +2556,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Biolume Serpent primitive=Biolume Serpent
id=687817 id=687818
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2566,7 +2566,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Ghostly Castigator primitive=Ghostly Castigator
id=687819 id=687820
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2576,7 +2576,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Insectile Aberration primitive=Insectile Aberration
id=687821 id=687822
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2586,7 +2586,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Grisly Anglerfish primitive=Grisly Anglerfish
id=687823 id=687824
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2596,7 +2596,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Cipherbound Spirit primitive=Cipherbound Spirit
id=687825 id=687826
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2606,7 +2606,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Awoken Horror primitive=Awoken Horror
id=687827 id=687828
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2616,7 +2616,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Lord of Lineage primitive=Lord of Lineage
id=687829 id=687830
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2626,7 +2626,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Awoken Demon primitive=Awoken Demon
id=687831 id=687832
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2636,7 +2636,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Bloodsoaked Reveler primitive=Bloodsoaked Reveler
id=687833 id=687834
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2646,7 +2646,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Vildin-Pack Alpha primitive=Vildin-Pack Alpha
id=687835 id=687836
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2656,7 +2656,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Erupting Dreadwolf primitive=Erupting Dreadwolf
id=687837 id=687838
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2666,7 +2666,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Moonrise Intruder primitive=Moonrise Intruder
id=687839 id=687840
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2676,7 +2676,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Krallenhorde Howler primitive=Krallenhorde Howler
id=687841 id=687842
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2686,7 +2686,7 @@ rarity=C
[/card] [/card]
[card] [card]
primitive=Moonscarred Werewolf primitive=Moonscarred Werewolf
id=687843 id=687844
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2696,7 +2696,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Howling Chorus primitive=Howling Chorus
id=687845 id=687846
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2706,7 +2706,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Ravager of the Fells primitive=Ravager of the Fells
id=687847 id=687848
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2716,7 +2716,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Chalice of Death primitive=Chalice of Death
id=687849 id=687850
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2726,7 +2726,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Aurora of Emrakul primitive=Aurora of Emrakul
id=687851 id=687852
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2736,7 +2736,7 @@ rarity=U
[/card] [/card]
[card] [card]
primitive=Ashmouth Blade primitive=Ashmouth Blade
id=687853 id=687854
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -2746,7 +2746,7 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Ormendahl, Profane Prince primitive=Ormendahl, Profane Prince
id=687855 id=687856
rarity=T rarity=T
[/card] [/card]
[card] [card]

View File

@@ -4,7 +4,8 @@ name=Tales of Middle-earth Commander
year=2023-06-23 year=2023-06-23
total=592 total=592
[/meta] [/meta]
-primitive=The Monarch [card]
primitive=The Monarch
id=-999905 id=-999905
rarity=T rarity=T
[/card] [/card]

View File

@@ -2,7 +2,7 @@
author=Wagic Team author=Wagic Team
name=Modern Horizons 3 name=Modern Horizons 3
year=2024-06-14 year=2024-06-14
total=558 total=560
[/meta] [/meta]
[card] [card]
primitive=Breaker of Creation primitive=Breaker of Creation
@@ -980,12 +980,7 @@ id=662347
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Ondu Knotmaster primitive=Ondu Knotmaster // Throw a Line
id=662348
rarity=U
[/card]
[card]
primitive=Throw a Line
id=662348 id=662348
rarity=U rarity=U
[/card] [/card]
@@ -1197,7 +1192,7 @@ rarity=M
[card] [card]
primitive=Ajani, Nacatl Avenger primitive=Ajani, Nacatl Avenger
id=661754 id=661754
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Razorgrass Ambush primitive=Razorgrass Ambush
@@ -1207,7 +1202,7 @@ rarity=U
[card] [card]
primitive=Razorgrass Field primitive=Razorgrass Field
id=661756 id=661756
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Witch Enchanter primitive=Witch Enchanter
@@ -1217,7 +1212,7 @@ rarity=U
[card] [card]
primitive=Witch-Blessed Meadow primitive=Witch-Blessed Meadow
id=661758 id=661758
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Hydroelectric Specimen primitive=Hydroelectric Specimen
@@ -1227,7 +1222,7 @@ rarity=U
[card] [card]
primitive=Hydroelectric Laboratory primitive=Hydroelectric Laboratory
id=661760 id=661760
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Sink into Stupor primitive=Sink into Stupor
@@ -1237,7 +1232,7 @@ rarity=U
[card] [card]
primitive=Soporific Springs primitive=Soporific Springs
id=661762 id=661762
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Tamiyo, Inquisitive Student primitive=Tamiyo, Inquisitive Student
@@ -1247,7 +1242,7 @@ rarity=M
[card] [card]
primitive=Tamiyo, Seasoned Scholar primitive=Tamiyo, Seasoned Scholar
id=661764 id=661764
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Boggart Trawler primitive=Boggart Trawler
@@ -1257,7 +1252,7 @@ rarity=U
[card] [card]
primitive=Boggart Bog primitive=Boggart Bog
id=661766 id=661766
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Fell the Profane primitive=Fell the Profane
@@ -1267,7 +1262,7 @@ rarity=U
[card] [card]
primitive=Fell Mire primitive=Fell Mire
id=661768 id=661768
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Sorin of House Markov primitive=Sorin of House Markov
@@ -1277,7 +1272,7 @@ rarity=M
[card] [card]
primitive=Sorin, Ravenous Neonate primitive=Sorin, Ravenous Neonate
id=661770 id=661770
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Pinnacle Monk primitive=Pinnacle Monk
@@ -1287,7 +1282,7 @@ rarity=U
[card] [card]
primitive=Mystic Peak primitive=Mystic Peak
id=661772 id=661772
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Ral, Monsoon Mage primitive=Ral, Monsoon Mage
@@ -1297,7 +1292,7 @@ rarity=M
[card] [card]
primitive=Ral, Leyline Prodigy primitive=Ral, Leyline Prodigy
id=661774 id=661774
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Sundering Eruption primitive=Sundering Eruption
@@ -1307,7 +1302,7 @@ rarity=U
[card] [card]
primitive=Volcanic Fissure primitive=Volcanic Fissure
id=661776 id=661776
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Bridgeworks Battle primitive=Bridgeworks Battle
@@ -1317,7 +1312,7 @@ rarity=U
[card] [card]
primitive=Tanglespan Bridgeworks primitive=Tanglespan Bridgeworks
id=661778 id=661778
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Disciple of Freyalise primitive=Disciple of Freyalise
@@ -1327,7 +1322,7 @@ rarity=U
[card] [card]
primitive=Garden of Freyalise primitive=Garden of Freyalise
id=661780 id=661780
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Grist, Voracious Larva primitive=Grist, Voracious Larva
@@ -1337,7 +1332,7 @@ rarity=M
[card] [card]
primitive=Grist, the Plague Swarm primitive=Grist, the Plague Swarm
id=661782 id=661782
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Bloodsoaked Insight primitive=Bloodsoaked Insight
@@ -1347,7 +1342,7 @@ rarity=U
[card] [card]
primitive=Sanguine Morass primitive=Sanguine Morass
id=661784 id=661784
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Drowner of Truth primitive=Drowner of Truth
@@ -1357,7 +1352,7 @@ rarity=U
[card] [card]
primitive=Drowned Jungle primitive=Drowned Jungle
id=661786 id=661786
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Glasswing Grace primitive=Glasswing Grace
@@ -1367,7 +1362,7 @@ rarity=U
[card] [card]
primitive=Age-Graced Chapel primitive=Age-Graced Chapel
id=661788 id=661788
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Legion Leadership primitive=Legion Leadership
@@ -1377,7 +1372,7 @@ rarity=U
[card] [card]
primitive=Legion Stronghold primitive=Legion Stronghold
id=661790 id=661790
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Revitalizing Repast primitive=Revitalizing Repast
@@ -1387,7 +1382,7 @@ rarity=U
[card] [card]
primitive=Old-Growth Grove primitive=Old-Growth Grove
id=661792 id=661792
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Rush of Inspiration primitive=Rush of Inspiration
@@ -1397,7 +1392,7 @@ rarity=U
[card] [card]
primitive=Crackling Falls primitive=Crackling Falls
id=661794 id=661794
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Strength of the Harvest primitive=Strength of the Harvest
@@ -1407,7 +1402,7 @@ rarity=U
[card] [card]
primitive=Haven of the Harvest primitive=Haven of the Harvest
id=661796 id=661796
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Stump Stomp primitive=Stump Stomp
@@ -1417,7 +1412,7 @@ rarity=U
[card] [card]
primitive=Burnwillow Clearing primitive=Burnwillow Clearing
id=661798 id=661798
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Suppression Ray primitive=Suppression Ray
@@ -1427,7 +1422,7 @@ rarity=U
[card] [card]
primitive=Orderly Plaza primitive=Orderly Plaza
id=661800 id=661800
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Waterlogged Teachings primitive=Waterlogged Teachings
@@ -1437,7 +1432,7 @@ rarity=U
[card] [card]
primitive=Inundated Archive primitive=Inundated Archive
id=661802 id=661802
rarity=U rarity=T
[/card] [/card]
[card] [card]
primitive=Angel of the Ruins primitive=Angel of the Ruins
@@ -2346,8 +2341,8 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Ajani, Nacatl Avenger primitive=Ajani, Nacatl Avenger
id=661309 id=661310
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Tamiyo, Inquisitive Student primitive=Tamiyo, Inquisitive Student
@@ -2356,8 +2351,8 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Tamiyo, Seasoned Scholar primitive=Tamiyo, Seasoned Scholar
id=661311 id=661312
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Sorin of House Markov primitive=Sorin of House Markov
@@ -2366,8 +2361,8 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Sorin, Ravenous Neonate primitive=Sorin, Ravenous Neonate
id=661313 id=661314
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Ral, Monsoon Mage primitive=Ral, Monsoon Mage
@@ -2376,8 +2371,8 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Ral, Leyline Prodigy primitive=Ral, Leyline Prodigy
id=661315 id=661316
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Grist, Voracious Larva primitive=Grist, Voracious Larva
@@ -2386,8 +2381,8 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Grist, the Plague Swarm primitive=Grist, the Plague Swarm
id=661317 id=661318
rarity=M rarity=T
[/card] [/card]
[card] [card]
primitive=Argent Dais primitive=Argent Dais

View File

@@ -3,204 +3,9 @@ author=Wagic Team
name=Strixhaven: School of Mages name=Strixhaven: School of Mages
orderindex=EXP-ZZI.STX orderindex=EXP-ZZI.STX
year=2021-04-23 year=2021-04-23
total=340 total=415
[/meta] [/meta]
[card] [card]
primitive=Pest
id=-513734
rarity=T
[/card]
[card]
primitive=Spirit
id=-513728
rarity=T
[/card]
[card]
primitive=Inkling
id=-513722
rarity=T
[/card]
[card]
primitive=Spirit
id=-513712
rarity=T
[/card]
[card]
primitive=Pest
id=-513703
rarity=T
[/card]
[card]
primitive=Fractal
id=-513697
rarity=T
[/card]
[card]
primitive=Spirit
id=-513696
rarity=T
[/card]
[card]
primitive=Elemental
id=-513695
rarity=T
[/card]
[card]
primitive=Spirit
id=-513692
rarity=T
[/card]
[card]
primitive=Spirit
id=-513691
rarity=T
[/card]
[card]
primitive=Fractal
id=-513688
rarity=T
[/card]
[card]
primitive=Inkling
id=-513687
rarity=T
[/card]
[card]
primitive=Fractal
id=-513679
rarity=T
[/card]
[card]
primitive=Elemental
id=-513675
rarity=T
[/card]
[card]
primitive=Elemental
id=-513674
rarity=T
[/card]
[card]
primitive=Elemental
id=-513673
rarity=T
[/card]
[card]
primitive=Inkling
id=-513672
rarity=T
[/card]
[card]
primitive=Treasure
id=-513663
rarity=T
[/card]
[card]
primitive=Fractal
id=-513660
rarity=T
[/card]
[card]
primitive=Inkling
id=-513659
rarity=T
[/card]
[card]
primitive=Fractal
id=-513656
rarity=T
[/card]
[card]
primitive=Pest
id=-513655
rarity=T
[/card]
[card]
primitive=Pest
id=-513652
rarity=T
[/card]
[card]
primitive=Pest
id=-513638
rarity=T
[/card]
[card]
primitive=Fractal
id=-513634
rarity=T
[/card]
[card]
primitive=Pest
id=-513617
rarity=T
[/card]
[card]
primitive=Fractal
id=-513613
rarity=T
[/card]
[card]
primitive=Pest
id=-513602
rarity=T
[/card]
[card]
primitive=Spirit
id=-513586
rarity=T
[/card]
[card]
primitive=Spirit
id=-513585
rarity=T
[/card]
[card]
primitive=Inkling
id=-513566
rarity=T
[/card]
[card]
primitive=Pest
id=-513563
rarity=T
[/card]
[card]
primitive=Pest
id=-513550
rarity=T
[/card]
[card]
primitive=Pest
id=-513543
rarity=T
[/card]
[card]
primitive=Fractal
id=-513529
rarity=T
[/card]
[card]
primitive=Elemental
id=-513528
rarity=T
[/card]
[card]
primitive=Elemental
id=-513525
rarity=T
[/card]
[card]
primitive=Spirit
id=-513502
rarity=T
[/card]
[card]
primitive=Inkling
id=-513481
rarity=T
[/card]
[card]
primitive=Environmental Sciences primitive=Environmental Sciences
id=513477 id=513477
rarity=C rarity=C
@@ -937,42 +742,42 @@ rarity=R
[/card] [/card]
[card] [card]
primitive=Augmenter Pugilist primitive=Augmenter Pugilist
id=513624 id=513625
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Echoing Equation primitive=Echoing Equation
id=513625 id=513624
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Blex, Vexing Pest primitive=Blex, Vexing Pest
id=513626 id=513627
rarity=M rarity=M
[/card] [/card]
[card] [card]
primitive=Search for Blex primitive=Search for Blex
id=513627 id=513626
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Extus, Oriq Overlord primitive=Extus, Oriq Overlord
id=513628 id=516912
rarity=M rarity=M
[/card] [/card]
[card] [card]
primitive=Awaken the Blood Avatar primitive=Awaken the Blood Avatar
id=513629 id=516913
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Flamescroll Celebrant primitive=Flamescroll Celebrant
id=513630 id=513631
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Revel in Silence primitive=Revel in Silence
id=513631 id=513630
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -987,52 +792,52 @@ rarity=T
[/card] [/card]
[card] [card]
primitive=Kianne, Dean of Substance primitive=Kianne, Dean of Substance
id=513634 id=516918
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Imbraham, Dean of Theory primitive=Imbraham, Dean of Theory
id=513635 id=516919
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Mila, Crafty Companion primitive=Mila, Crafty Companion
id=513636 id=516789
rarity=M rarity=M
[/card] [/card]
[card] [card]
primitive=Lukka, Wayward Bonder primitive=Lukka, Wayward Bonder
id=513637 id=516790
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Pestilent Cauldron primitive=Pestilent Cauldron
id=513638 id=516920
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Restorative Burst primitive=Restorative Burst
id=513639 id=516921
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Plargg, Dean of Chaos primitive=Plargg, Dean of Chaos
id=513640 id=516922
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Augusta, Dean of Order primitive=Augusta, Dean of Order
id=513641 id=516923
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Rowan, Scholar of Sparks primitive=Rowan, Scholar of Sparks
id=513642 id=516792
rarity=M rarity=M
[/card] [/card]
[card] [card]
primitive=Will, Scholar of Frost primitive=Will, Scholar of Frost
id=513643 id=516791
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1057,12 +862,12 @@ rarity=T
[/card] [/card]
[card] [card]
primitive=Torrent Sculptor primitive=Torrent Sculptor
id=513648 id=516928
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Flamethrower Sonata primitive=Flamethrower Sonata
id=513649 id=516929
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -1656,52 +1461,617 @@ id=513767
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Professor Onyx
id=516788
rarity=M
[/card]
[card]
primitive=Mila, Crafty Companion
id=513636
rarity=M
[/card]
[card]
primitive=Lukka, Wayward Bonder
id=513637
rarity=T
[/card]
[card]
primitive=Rowan, Scholar of Sparks
id=513643
rarity=M
[/card]
[card]
primitive=Will, Scholar of Frost
id=513642
rarity=T
[/card]
[card]
primitive=Kasmina, Enigma Sage
id=516793
rarity=M
[/card]
[card]
primitive=Shadrix Silverquill
id=517441
rarity=M
[/card]
[card]
primitive=Galazeth Prismari
id=517442
rarity=M
[/card]
[card]
primitive=Beledros Witherbloom
id=517443
rarity=M
[/card]
[card]
primitive=Velomachus Lorehold
id=517444
rarity=M
[/card]
[card]
primitive=Tanazir Quandrix
id=517445
rarity=M
[/card]
[card]
primitive=Mascot Exhibition
id=516871
rarity=M
[/card]
[card]
primitive=Wandering Archaic
id=516872
rarity=R
[/card]
[card]
primitive=Explore the Vastlands
id=516873
rarity=T
[/card]
[card]
primitive=Academic Probation
id=516874
rarity=R
[/card]
[card]
primitive=Devastating Mastery
id=516875
rarity=R
[/card]
[card]
primitive=Elite Spellbinder
id=516876
rarity=R
[/card]
[card]
primitive=Leonin Lightscribe
id=516877
rarity=R
[/card]
[card]
primitive=Mavinda, Students' Advocate
id=516878
rarity=M
[/card]
[card]
primitive=Semester's End
id=516879
rarity=R
[/card]
[card]
primitive=Sparring Regimen
id=516880
rarity=R
[/card]
[card]
primitive=Strict Proctor
id=516881
rarity=R
[/card]
[card]
primitive=Archmage Emeritus
id=516882
rarity=R
[/card]
[card]
primitive=Dream Strix
id=516883
rarity=R
[/card]
[card]
primitive=Ingenious Mastery
id=516884
rarity=R
[/card]
[card]
primitive=Multiple Choice
id=516885
rarity=R
[/card]
[card]
primitive=Teachings of the Archaics
id=516886
rarity=R
[/card]
[card]
primitive=Tempted by the Oriq
id=516887
rarity=R
[/card]
[card]
primitive=Baleful Mastery
id=516888
rarity=R
[/card]
[card]
primitive=Callous Bloodmage
id=516889
rarity=R
[/card]
[card]
primitive=Confront the Past
id=516890
rarity=R
[/card]
[card]
primitive=Oriq Loremage
id=516891
rarity=R
[/card]
[card]
primitive=Poet's Quill
id=516892
rarity=R
[/card]
[card]
primitive=Sedgemoor Witch
id=516893
rarity=R
[/card]
[card]
primitive=Conspiracy Theorist
id=516894
rarity=R
[/card]
[card]
primitive=Crackle with Power
id=516895
rarity=M
[/card]
[card]
primitive=Draconic Intervention
id=516896
rarity=R
[/card]
[card]
primitive=Efreet Flamepainter
id=516897
rarity=R
[/card]
[card]
primitive=Fervent Mastery
id=516898
rarity=R
[/card]
[card]
primitive=Illuminate History
id=516899
rarity=R
[/card]
[card]
primitive=Retriever Phoenix
id=516900
rarity=R
[/card]
[card]
primitive=Accomplished Alchemist
id=516901
rarity=R
[/card]
[card]
primitive=Basic Conjuration
id=516902
rarity=R
[/card]
[card]
primitive=Dragonsguard Elite
id=516903
rarity=R
[/card]
[card]
primitive=Ecological Appreciation
id=516904
rarity=M
[/card]
[card]
primitive=Exponential Growth
id=516905
rarity=R
[/card]
[card]
primitive=Gnarled Professor
id=516906
rarity=R
[/card]
[card]
primitive=Verdant Mastery
id=516907
rarity=R
[/card]
[card]
primitive=Augmenter Pugilist
id=516909
rarity=R
[/card]
[card]
primitive=Echoing Equation
id=516908
rarity=T
[/card]
[card]
primitive=Blex, Vexing Pest
id=516911
rarity=M
[/card]
[card]
primitive=Search for Blex
id=516910
rarity=T
[/card]
[card]
primitive=Extus, Oriq Overlord
id=513628
rarity=M
[/card]
[card]
primitive=Awaken the Blood Avatar
id=513629
rarity=T
[/card]
[card]
primitive=Flamescroll Celebrant
id=516915
rarity=R
[/card]
[card]
primitive=Revel in Silence
id=516914
rarity=T
[/card]
[card]
primitive=Jadzi, Oracle of Arcavios
id=516916
rarity=M
[/card]
[card]
primitive=Journey to the Oracle
id=516917
rarity=T
[/card]
[card]
primitive=Kianne, Dean of Substance
id=513634
rarity=R
[/card]
[card]
primitive=Imbraham, Dean of Theory
id=513635
rarity=T
[/card]
[card]
primitive=Pestilent Cauldron
id=513638
rarity=R
[/card]
[card]
primitive=Restorative Burst
id=513639
rarity=T
[/card]
[card]
primitive=Plargg, Dean of Chaos
id=513640
rarity=R
[/card]
[card]
primitive=Augusta, Dean of Order
id=513641
rarity=T
[/card]
[card]
primitive=Selfless Glyphweaver
id=516924
rarity=R
[/card]
[card]
primitive=Deadly Vanity
id=516925
rarity=T
[/card]
[card]
primitive=Shaile, Dean of Radiance
id=516926
rarity=R
[/card]
[card]
primitive=Embrose, Dean of Shadow
id=516927
rarity=T
[/card]
[card]
primitive=Torrent Sculptor
id=513648
rarity=R
[/card]
[card]
primitive=Flamethrower Sonata
id=513649
rarity=T
[/card]
[card]
primitive=Uvilda, Dean of Perfection
id=516930
rarity=R
[/card]
[card]
primitive=Nassari, Dean of Expression
id=516931
rarity=T
[/card]
[card]
primitive=Valentin, Dean of the Vein
id=516932
rarity=R
[/card]
[card]
primitive=Lisette, Dean of the Root
id=516933
rarity=T
[/card]
[card]
primitive=Blade Historian
id=516934
rarity=R
[/card]
[card]
primitive=Blot Out the Sky
id=516935
rarity=M
[/card]
[card]
primitive=Body of Research
id=516936
rarity=M
[/card]
[card]
primitive=Culling Ritual
id=516937
rarity=R
[/card]
[card]
primitive=Culmination of Studies
id=516938
rarity=R
[/card]
[card]
primitive=Daemogoth Titan
id=516939
rarity=R
[/card]
[card]
primitive=Double Major
id=516940
rarity=R
[/card]
[card]
primitive=Dramatic Finale
id=516941
rarity=R
[/card]
[card]
primitive=Elemental Expressionist
id=516942
rarity=R
[/card]
[card]
primitive=Harness Infinity
id=516943
rarity=M
[/card]
[card]
primitive=Hofri Ghostforge
id=516944
rarity=M
[/card]
[card]
primitive=Lorehold Command
id=516945
rarity=R
[/card]
[card]
primitive=Magma Opus
id=516946
rarity=M
[/card]
[card]
primitive=Manifestation Sage
id=516947
rarity=R
[/card]
[card]
primitive=Prismari Command
id=516948
rarity=R
[/card]
[card]
primitive=Quandrix Command
id=516949
rarity=R
[/card]
[card]
primitive=Radiant Scrollwielder
id=516950
rarity=R
[/card]
[card]
primitive=Rushed Rebirth
id=516951
rarity=R
[/card]
[card]
primitive=Silverquill Command
id=516952
rarity=R
[/card]
[card]
primitive=Silverquill Silencer
id=516953
rarity=R
[/card]
[card]
primitive=Vanishing Verse
id=516954
rarity=R
[/card]
[card]
primitive=Venerable Warsinger
id=516955
rarity=R
[/card]
[card]
primitive=Witherbloom Command
id=516956
rarity=R
[/card]
[card]
primitive=Codie, Vociferous Codex
id=516957
rarity=R
[/card]
[card]
primitive=Strixhaven Stadium
id=516958
rarity=R
[/card]
[card]
primitive=The Biblioplex
id=516959
rarity=R
[/card]
[card]
primitive=Frostboil Snarl
id=516960
rarity=R
[/card]
[card]
primitive=Furycalm Snarl
id=516961
rarity=R
[/card]
[card]
primitive=Hall of Oracles
id=516962
rarity=R
[/card]
[card]
primitive=Necroblossom Snarl
id=516963
rarity=R
[/card]
[card]
primitive=Shineshadow Snarl
id=516964
rarity=R
[/card]
[card]
primitive=Vineglimmer Snarl
id=516965
rarity=R
[/card]
[card]
primitive=Plains primitive=Plains
id=516678 id=516678
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Plains primitive=Plains
id=516679 id=516679
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Island primitive=Island
id=516680 id=516680
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Island primitive=Island
id=516681 id=516681
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Swamp primitive=Swamp
id=516682 id=516682
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Swamp primitive=Swamp
id=516683 id=516683
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Mountain primitive=Mountain
id=516684 id=516684
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Mountain primitive=Mountain
id=516685 id=516685
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Forest primitive=Forest
id=516686 id=516686
rarity=C rarity=L
[/card] [/card]
[card] [card]
primitive=Forest primitive=Forest
id=516687 id=516687
rarity=C rarity=L
[/card]
[card]
primitive=Dragonsguard Elite
id=516860
rarity=R
[/card]
[card]
primitive=Archmage Emeritus
id=516854
rarity=R
[/card]
[card]
primitive=Fracture
id=517496
rarity=U
[/card]
[card]
primitive=Expressive Iteration
id=517497
rarity=U
[/card]
[card]
primitive=Mortality Spear
id=517498
rarity=U
[/card]
[card]
primitive=Rip Apart
id=517499
rarity=U
[/card]
[card]
primitive=Decisive Denial
id=517500
rarity=U
[/card] [/card]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,136 @@
[meta]
author=Wagic Team
name=Ugin's Fate
year=2015-01-17
total=26
[/meta]
[card]
primitive=Ugin, the Spirit Dragon
id=394086
rarity=M
[/card]
[card]
primitive=Mastery of the Unseen
id=394079
rarity=R
[/card]
[card]
primitive=Smite the Monstrous
id=394083
rarity=C
[/card]
[card]
primitive=Soul Summons
id=394084
rarity=C
[/card]
[card]
primitive=Watcher of the Roost
id=394088
rarity=U
[/card]
[card]
primitive=Jeskai Infiltrator
id=394078
rarity=R
[/card]
[card]
primitive=Reality Shift
id=394081
rarity=U
[/card]
[card]
primitive=Mystic of the Hidden Way
id=394080
rarity=C
[/card]
[card]
primitive=Write into Being
id=394090
rarity=C
[/card]
[card]
primitive=Debilitating Injury
id=394070
rarity=C
[/card]
[card]
primitive=Grim Haruspex
id=394075
rarity=R
[/card]
[card]
primitive=Sultai Emissary
id=394085
rarity=C
[/card]
[card]
primitive=Ruthless Ripper
id=394082
rarity=U
[/card]
[card]
primitive=Ainok Tracker
id=394065
rarity=C
[/card]
[card]
primitive=Arc Lightning
id=394068
rarity=U
[/card]
[card]
primitive=Fierce Invocation
id=394072
rarity=C
[/card]
[card]
primitive=Jeering Instigator
id=394077
rarity=R
[/card]
[card]
primitive=Arashin War Beast
id=394067
rarity=U
[/card]
[card]
primitive=Formless Nurturing
id=394073
rarity=C
[/card]
[card]
primitive=Dragonscale Boon
id=394071
rarity=C
[/card]
[card]
primitive=Wildcall
id=394089
rarity=R
[/card]
[card]
primitive=Hewed Stone Retainers
id=394076
rarity=U
[/card]
[card]
primitive=Ugin's Construct
id=394087
rarity=U
[/card]
[card]
primitive=Altar of the Brood
id=394066
rarity=R
[/card]
[card]
primitive=Briber's Purse
id=394069
rarity=U
[/card]
[card]
primitive=Ghostfire Blade
id=394074
rarity=R
[/card]

View File

@@ -1,7 +1,6 @@
[meta] [meta]
author=Wagic Team author=Wagic Team
name=Alchemy: Innistrad name=Alchemy: Innistrad
orderindex=ONL-E.YMID
year=2021-12-09 year=2021-12-09
total=64 total=64
[/meta] [/meta]
@@ -217,7 +216,7 @@ rarity=M
[/card] [/card]
[card] [card]
primitive=Rahilda, Feral Outlaw primitive=Rahilda, Feral Outlaw
id=548268 id=548269
rarity=T rarity=T
[/card] [/card]
[card] [card]

View File

@@ -163,9 +163,6 @@
# Afterlife # Afterlife
#AUTO_DEFINE _AFTERLIFETOKEN_ create(Spirit:Creature Spirit:1/1:white:black:flying) #AUTO_DEFINE _AFTERLIFETOKEN_ create(Spirit:Creature Spirit:1/1:white:black:flying)
# Riot
#AUTO_DEFINE _RIOT_ movedTo(this|myBattlefield):transforms((,newability[ability$! name(Choose counter or ability) choice name(Put a +1/+1 counter) counter(1/1) target(creature) _ choice name(Gains Haste) haste target(creature) forever !$ controller]))
# Learn # Learn
#AUTO_DEFINE _LEARN_ name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot controller #AUTO_DEFINE _LEARN_ name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot controller
@@ -179,13 +176,13 @@
#AUTO_DEFINE _FORETELL_ {2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly #AUTO_DEFINE _FORETELL_ {2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly
# Plot # Plot
#AUTO_DEFINE _PLOT_ name(Plot and exile) name(Plot and exile) doforetell asSorcery #AUTO_DEFINE _PLOT_ name(Plot) name(Plot) doforetell asSorcery
# Plot Cast # Plot Cast
#AUTO_DEFINE _PLOTCAST_ {0}restriction{compare(canforetellcast)~morethan~0}:name(Cast with plot) name(Cast with plot) activate castcard(alternative) asSorcery #AUTO_DEFINE _PLOTCAST_ {0}restriction{compare(canforetellcast)~morethan~0}:name(Cast) name(Cast) activate castcard(alternative) asSorcery
# Loot (draw a card, then discard a card.) # Loot. Draw a card, then discard a card.
#AUTO_DEFINE _LOOT_ draw:1 && transforms((,newability[target(*|myhand) reject])) forever #AUTO_DEFINE _LOOT_ draw:1 && transforms((,newability[notatarget(*|myhand) reject])) forever
# Unearth # Unearth
#AUTO_DEFINE _UNEARTH_ name(Unearth) moveto(mybattlefield) and!( transforms((,haste,newability[unearth],newability[exiledeath])) forever )! asSorcery #AUTO_DEFINE _UNEARTH_ name(Unearth) moveto(mybattlefield) and!( transforms((,haste,newability[unearth],newability[exiledeath])) forever )! asSorcery
@@ -210,14 +207,14 @@
# (blink)ueot doesn't work if a creature uses it on itself # (blink)ueot doesn't work if a creature uses it on itself
#AUTO_DEFINE _BLINK_UEOT_ moveto(exile) and!( transforms((,newability[phaseaction[end once checkex] moveto(ownerbattlefield)])) forever )! #AUTO_DEFINE _BLINK_UEOT_ moveto(exile) and!( transforms((,newability[phaseaction[end once checkex] moveto(ownerbattlefield)])) forever )!
# Connives. (Draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on this creature.) # Connives. Draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on this creature.
#AUTO_DEFINE _CONNIVES_ draw:1 && transforms((,newability[if type(*[-land]|myhand)~morethan~0 then choice name(Discard a nonland) name(Discard a nonland) target(*[-land]|myhand) reject && counter(1/1) all(this)],newability[if type(land|myhand)~morethan~0 then choice name(Discard a land) name(Discard a land) target(land|myhand) reject])) oneshot #AUTO_DEFINE _CONNIVES_ draw:1 && transforms((,newability[if type(*[-land]|myhand)~morethan~0 then choice name(Discard a nonland) name(Discard a nonland) target(*[-land]|myhand) reject && counter(1/1) all(this)],newability[if type(land|myhand)~morethan~0 then choice name(Discard a land) name(Discard a land) target(land|myhand) reject])) oneshot
# Eternalize # Eternalize
#AUTO_DEFINE _ETERNALIZE_ name(Eternalize) clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! assorcery #AUTO_DEFINE _ETERNALIZE_ name(Eternalize) clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! assorcery
# Explores # Explores
#AUTO_DEFINE _EXPLORES_ name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend #AUTO_DEFINE _EXPLORES_ name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then counter(1/1) optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend
# Discard a card. If you do, draw a card # Discard a card. If you do, draw a card
#AUTO_DEFINE _DISCARD&DRAW_ reject notatarget(*|myhand) and!(draw:1 controller)! #AUTO_DEFINE _DISCARD&DRAW_ reject notatarget(*|myhand) and!(draw:1 controller)!
@@ -225,10 +222,13 @@
# Target creature deals damage equal to its power to target creature you don't control. # Target creature deals damage equal to its power to target creature you don't control.
#AUTO_DEFINE _PUNCH_ transforms((,newability[dynamicability<!powerstrike!> target(creature|opponentbattlefield)])) oneshot #AUTO_DEFINE _PUNCH_ transforms((,newability[dynamicability<!powerstrike!> target(creature|opponentbattlefield)])) oneshot
# Must be blocked this turn if able # Fight. Both creatures deal damage equal to their Power to each other.
#AUTO_DEFINE _MUST_BE_BLOCKD_ newability[@combat(attacking) source(this):ability$! notatarget(creature|myBattlefield) transforms((,newability[mustblock])) ueot!$ opponent] #AUTO_DEFINE _FIGHT_ transforms((,newability[target(creature|opponentbattlefield) dynamicability<!powerstrike eachother!>])) oneshot
# Suspect it (It has menace and can't block.) # Must be blocked this turn if able
#AUTO_DEFINE _MUST_BE_BLOCKD_ newability[@combat(attacking) source(this):ability$! notatarget(creature[-tapped]|myBattlefield) transforms((,newability[mustblock])) ueot!$ opponent]
# Suspect it. It has menace and can't block.
#AUTO_DEFINE _SUSPECT_IT_ name(Suspect it) transforms((suspect,menace,cantblock)) forever #AUTO_DEFINE _SUSPECT_IT_ name(Suspect it) transforms((suspect,menace,cantblock)) forever
# Finality counter, if it would die, it's exiled instead # Finality counter, if it would die, it's exiled instead
@@ -240,15 +240,47 @@
#AUTO_DEFINE _ENLIST_ @combat(attacking) source(this) restriction{type(creature[-fresh]|mybattlefield)~morethan~0}:transforms((,newability[{T(creature[-attacking;-fresh]|mybattlefield)}:storedpower/0 ueot limit:1])) ueot #AUTO_DEFINE _ENLIST_ @combat(attacking) source(this) restriction{type(creature[-fresh]|mybattlefield)~morethan~0}:transforms((,newability[{T(creature[-attacking;-fresh]|mybattlefield)}:storedpower/0 ueot limit:1])) ueot
# Add one mana of any color. # Add one mana of any color.
#AUTO_DEFINE _MANAOFANYCOLOR_ ability$! choice Add{W} _ choice Add{U} _ choice Add{B} _ choice Add{R} _ choice Add{G} !$ controller #AUTO_DEFINE _MANAOFANYCOLOR_ name(Add one mana of any color) ability$! choice Add{W} _ choice Add{U} _ choice Add{B} _ choice Add{R} _ choice Add{G} !$ controller
# Manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.) # Manifest dread. Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.
#AUTO_DEFINE _MANIFEST_DREAD_ name(Manifest dread) reveal:2 optionone name(Manifest) target(*|reveal) manifest optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend #AUTO_DEFINE _MANIFEST_DREAD_ name(Manifest dread) reveal:2 optionone name(Manifest) target(*|reveal) manifest optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend
#AUTO_DEFINE _EERIE_ @movedTo(*[Room]|myBattlefield): #AUTO_DEFINE _EERIE_ @movedTo(*[Room]|myBattlefield):
#AUTO_DEFINE _CREW1_ {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} #AUTO_DEFINE _CREW1_ {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}
#AUTO_DEFINE _CREW2_ {crew(other creature[power>=2]|myBattlefield)}:name(crew 2 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=2]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~1}
#AUTO_DEFINE _CREW2COMPLEMENT_ {crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=1]|myBattlefield)}:name(crew 2 [2 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~1,compare(crewtotalpower)~morethan~1}
# Endure
#AUTO_DEFINE _ENDURE1_ transforms((,newability[choice counter(1/1)],newability[choice create(Spirit:Creature:1/1:white)])) ueot
#AUTO_DEFINE _ENDURE2_ transforms((,newability[choice counter(1/1.2)],newability[choice create(Spirit:Creature:2/2:white)])) ueot
#AUTO_DEFINE _ENDURE3_ transforms((,newability[choice counter(1/1.3)],newability[choice create(Spirit:Creature:3/3:white)])) ueot
#AUTO_DEFINE _ENDURE4_ transforms((,newability[choice counter(1/1.4)],newability[choice create(Spirit:Creature:4/4:white)])) ueot
#AUTO_DEFINE _ENDURE5_ transforms((,newability[choice counter(1/1.5)],newability[choice create(Spirit:Creature:5/5:white)])) ueot
#AUTO_DEFINE _ENDURE6_ transforms((,newability[choice counter(1/1.6)],newability[choice create(Spirit:Creature:6/6:white)])) ueot
#AUTO_DEFINE _ENDURE7_ transforms((,newability[choice counter(1/1.7)],newability[choice create(Spirit:Creature:7/7:white)])) ueot
#AUTO_DEFINE _ENDURE8_ transforms((,newability[choice counter(1/1.8)],newability[choice create(Spirit:Creature:8/8:white)])) ueot
#AUTO_DEFINE _ENDURE9_ transforms((,newability[choice counter(1/1.9)],newability[choice create(Spirit:Creature:9/9:white)])) ueot
#AUTO_DEFINE _ENDURE10_ transforms((,newability[choice counter(1/1.10)],newability[choice create(Spirit:Creature:10/10:white)])) ueot
#AUTO_DEFINE _ENDURE11_ transforms((,newability[choice counter(1/1.11)],newability[choice create(Spirit:Creature:11/11:white)])) ueot
#AUTO_DEFINE _ENDURE12_ transforms((,newability[choice counter(1/1.12)],newability[choice create(Spirit:Creature:12/12:white)])) ueot
#AUTO_DEFINE _ENDURE13_ transforms((,newability[choice counter(1/1.13)],newability[choice create(Spirit:Creature:13/13:white)])) ueot
#AUTO_DEFINE _ENDURE14_ transforms((,newability[choice counter(1/1.14)],newability[choice create(Spirit:Creature:14/14:white)])) ueot
#AUTO_DEFINE _ENDURE15_ transforms((,newability[choice counter(1/1.15)],newability[choice create(Spirit:Creature:15/15:white)])) ueot
#AUTO_DEFINE _ENDURE16_ transforms((,newability[choice counter(1/1.16)],newability[choice create(Spirit:Creature:16/16:white)])) ueot
#AUTO_DEFINE _ENDURE17_ transforms((,newability[choice counter(1/1.17)],newability[choice create(Spirit:Creature:17/17:white)])) ueot
#AUTO_DEFINE _ENDURE18_ transforms((,newability[choice counter(1/1.18)],newability[choice create(Spirit:Creature:18/18:white)])) ueot
#AUTO_DEFINE _ENDURE19_ transforms((,newability[choice counter(1/1.19)],newability[choice create(Spirit:Creature:19/19:white)])) ueot
#AUTO_DEFINE _ENDURE20_ transforms((,newability[choice counter(1/1.20)],newability[choice create(Spirit:Creature:20/20:white)])) ueot
# Flurry
#AUTO_DEFINE _FLURRY_ @movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~1}:
# Mobilize
#AUTO_DEFINE _MOBILIZE_($c) @combat(attacking) source(this):create(Warrior:creature Warrior:1/1:red:battleready:treason)*$c
# Angel Token # Angel Token
#AUTO_DEFINE _ANGELTOKEN_ create(Angel:Creature Angel:4/4:white:flying) #AUTO_DEFINE _ANGELTOKEN_ create(Angel:Creature Angel:4/4:white:flying)
@@ -291,6 +323,12 @@
# Glimmer Token # Glimmer Token
#AUTO_DEFINE _GLIMMERTOKEN_ create(glimmer:creature glimmer enchantment:1/1:white) #AUTO_DEFINE _GLIMMERTOKEN_ create(glimmer:creature glimmer enchantment:1/1:white)
# Human Knight Token
#AUTO_DEFINE _HUMANKNIGHTTOKEN_ create(Human Knight:Creature Human Knight:2/2:red:trample:haste)
# Human Soldier Token
#AUTO_DEFINE _HUMANSOLDIERTOKEN_ create(soldier:creature Human soldier:1/1:white)
# Insect Token # Insect Token
#AUTO_DEFINE _INSECTTOKEN_ create(Insect:Creature Insect:1/1:green) #AUTO_DEFINE _INSECTTOKEN_ create(Insect:Creature Insect:1/1:green)
@@ -336,14 +374,17 @@
# Zombie Token # Zombie Token
#AUTO_DEFINE _ZOMBIETOKEN_ create(zombie:creature zombie:2/2:black) #AUTO_DEFINE _ZOMBIETOKEN_ create(zombie:creature zombie:2/2:black)
# Blood Token
#AUTO_DEFINE _BLOOD_ token(Blood^Blood Artifact^0/0) and!( transforms((,newability[{1}{T}{D(*|myhand)}{S}:draw:1])) forever )!
# 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

File diff suppressed because it is too large Load Diff

View File

@@ -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 24-12-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)
@@ -192,7 +192,7 @@ subtype=Aminatou
name=Angrath, Captain of Chaos name=Angrath, Captain of Chaos
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto=lord(creature|myBattlefield) menace auto=lord(creature|myBattlefield) menace
auto={C(0/0,-2,Loyalty)}:name(-2: Amass 2) _AMASSZOMBIE2_ auto={C(0/0,-2,Loyalty)}:name(-2: Amass 2) ability$! _AMASSZOMBIE2_ !$ controller
text=Creatures you control have menace. -- -2: Amass 2. (Put two +1/+1 counters on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) text=Creatures you control have menace. -- -2: Amass 2. (Put two +1/+1 counters on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.)
mana={2}{BR}{BR} mana={2}{BR}{BR}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -452,7 +452,7 @@ subtype=Chandra
[/card] [/card]
[card] [card]
name=Chandra, Awakened Inferno name=Chandra, Awakened Inferno
auto=nofizzle abilities=nofizzle
auto=counter(0/0,6,loyalty) auto=counter(0/0,6,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Emblem: "1 damage each upkeep") emblem transforms((,newability[@each opponent upkeep:damage:1 opponent])) forever dontremove auto={C(0/0,2,Loyalty)}:name(+2: Emblem: "1 damage each upkeep") emblem transforms((,newability[@each opponent upkeep:damage:1 opponent])) forever dontremove
auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to each non-elemental) damage:3 all(creature[-elemental]) auto={C(0/0,-3,Loyalty)}:name(-3: Deals 3 damage to each non-elemental) damage:3 all(creature[-elemental])
@@ -572,7 +572,7 @@ subtype=Chandra
name=Chandra, Gremlin Wrangler name=Chandra, Gremlin Wrangler
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 red Gremlin creature token) token(Gremlin,Creature Gremlin,2/2,red) auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 red Gremlin creature token) token(Gremlin,Creature Gremlin,2/2,red)
auto={C(0/0,-2,Loyalty)}:name(-2: Deals X damage to any target... ) damage:damage:type:creature[Gremlin]|myBattlefield target(anytarget) auto={C(0/0,-2,Loyalty)}:name(-2: Deals X damage to any target... ) damage:type:creature[Gremlin]:myBattlefield target(anytarget)
text=+1: Create a 2/2 red Gremlin creature token. -- -2: Chandra, Gremlin Wrangler deals X damage to any target, where X is the number of Gremlins you control. text=+1: Create a 2/2 red Gremlin creature token. -- -2: Chandra, Gremlin Wrangler deals X damage to any target, where X is the number of Gremlins you control.
mana={2}{R}{R} mana={2}{R}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -595,7 +595,7 @@ auto=counter(0/0,5,loyalty)
auto=@movedTo(*[instant;sorcery]|mystack) turnlimited:name(Copy spell) name(Copy spell) all(trigger[to]) transforms((,newability[name(Copy spell) activate castcard(copied noevent)])) oneshot auto=@movedTo(*[instant;sorcery]|mystack) turnlimited:name(Copy spell) name(Copy spell) all(trigger[to]) transforms((,newability[name(Copy spell) activate castcard(copied noevent)])) oneshot
auto={C(0/0,+2,Loyalty)}:name(+2: Add 2 mana) thisforeach(variable{2}) ability$!name(Choose one) choice name(Add white) add{W} _ choice name(Add blue) add{U} _ choice name(Add red) add{B} _ choice name(Add green) add{R} _ choice name(Add black) add{G}!$ controller auto={C(0/0,+2,Loyalty)}:name(+2: Add 2 mana) thisforeach(variable{2}) ability$!name(Choose one) choice name(Add white) add{W} _ choice name(Add blue) add{U} _ choice name(Add red) add{B} _ choice name(Add green) add{R} _ choice name(Add black) add{G}!$ controller
auto={C(0/0,+1,Loyalty)}:name(+1: Exile top 5 cards) all(*[zpos<=5]|mylibrary) moveto(myexile) and!( if cantargetcard(*[instant;sorcery]|*) then transforms((,newability[canplayfromexile])) ueot )! auto={C(0/0,+1,Loyalty)}:name(+1: Exile top 5 cards) all(*[zpos<=5]|mylibrary) moveto(myexile) and!( if cantargetcard(*[instant;sorcery]|*) then transforms((,newability[canplayfromexile])) ueot )!
auto={C(0/0,-1,Loyalty)}:name(-1: Damage one target) ability$!name(Damage target) name(Damage target) target(anytarget) damage:1!$ controller auto={C(0/0,-1,Loyalty)}:name(-1: Damage one target) ability$!name(Damage target) name(Damage target) target(anytarget) damage:1!$ controller
auto={C(0/0,-1,Loyalty)}:name(-1: Damage two target) ability$!name(Damage targets) name(Damage targets) target(<2>anytarget) damage:1!$ controller auto={C(0/0,-1,Loyalty)}:name(-1: Damage two target) ability$!name(Damage targets) name(Damage targets) target(<2>anytarget) damage:1!$ controller
auto={C(0/0,-2,Loyalty)}:name(-2: Damage one target) ability$!name(Damage target) name(Damage target) target(anytarget) damage:2!$ controller auto={C(0/0,-2,Loyalty)}:name(-2: Damage one target) ability$!name(Damage target) name(Damage target) target(anytarget) damage:2!$ controller
auto={C(0/0,-2,Loyalty)}:name(-2: Damage two target) ability$!name(Damage targets) name(Damage targets) target(<2>anytarget) damage:2!$ controller auto={C(0/0,-2,Loyalty)}:name(-2: Damage two target) ability$!name(Damage targets) name(Damage targets) target(<2>anytarget) damage:2!$ controller
@@ -709,6 +709,20 @@ subtype=Chandra
color=red color=red
[/card] [/card]
[card] [card]
name=Chandra, Spark Hunter
auto=counter(0/0,4,loyalty)
auto=@each my combatbegins:may target(vehicle|myBattlefield) becomes(Artifact Creature,haste) ueot
auto={C(0/0,+2,Loyalty)}:sacrifice notatarget(artifact|mybattlefield) and!( draw:1 )!
auto={C(0/0,+2,Loyalty)}:_DISCARD&DRAW_
auto={C(0/0,+2,Loyalty)}:name(Only +2 counters) doNothing
auto={C(0/0,0,Loyalty)}:_VEHICLE_
auto={C(0/0,-7,Loyalty)}:name(emblem) emblem transforms((,newability[@movedTo(artifact|myBattlefield):damage:3 target(anytarget)])) forever dontremove
text=At the beginning of combat on your turn, choose up to one target Vehicle you control. Until end of turn, it becomes an artifact creature and gains haste. -- [+2]: You may sacrifice an artifact or discard a card. If you do, draw a card. -- [0]: Create a 3/2 colorless Vehicle artifact token with crew 1. -- [-7]: You get an emblem with "Whenever an artifact you control enters, this emblem deals 3 damage to any target."
mana={3}{R}
type=Legendary Planeswalker
subtype=Chandra
[/card]
[card]
name=Chandra, Torch of Defiance name=Chandra, Torch of Defiance
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[choice name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent],newability[if cantargetcard(*[-land]|*) then choice name(Cast card from exile) name(Cast card from exile) counter(0/0.1.ChandraEffect) notrg])) ueot )! auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[choice name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent],newability[if cantargetcard(*[-land]|*) then choice name(Cast card from exile) name(Cast card from exile) counter(0/0.1.ChandraEffect) notrg])) ueot )!
@@ -847,7 +861,7 @@ auto=counter(0/0,3,loyalty)
auto=lord(other creature|myBattlefield) 1/0 auto=lord(other creature|myBattlefield) 1/0
auto={C(0/0,1,Loyalty)}:name(+1: Add Red mana and creatures can't be countered this turn) transforms((,newability[add{R}],newability[lord(creature|mystack) nofizzle])) ueot auto={C(0/0,1,Loyalty)}:name(+1: Add Red mana and creatures can't be countered this turn) transforms((,newability[add{R}],newability[lord(creature|mystack) nofizzle])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Add Green mana and creatures can't be countered this turn) transforms((,newability[add{G}],newability[lord(creature|mystack) nofizzle])) ueot auto={C(0/0,1,Loyalty)}:name(+1: Add Green mana and creatures can't be countered this turn) transforms((,newability[add{G}],newability[lord(creature|mystack) nofizzle])) ueot
auto={C(0/0,-2,Loyalty)}:name(-2: Target creature fights another creature) target(creature|myBattlefield) transforms((,newability[target(creature|opponentbattlefield) dynamicability<!powerstrike eachother!>])) ueot auto={C(0/0,-2,Loyalty)}:name(-2: Target creature fights another creature) target(creature|myBattlefield) _FIGHT_
text=Creatures you control get +1/+0. -- +1: Add {R} or {G}. Creature spells you cast this turn can't be countered. -- -2: Target creature you control fights target creature you don't control. text=Creatures you control get +1/+0. -- +1: Add {R} or {G}. Creature spells you cast this turn can't be countered. -- -2: Target creature you control fights target creature you don't control.
mana={1}{R}{G} mana={1}{R}{G}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -969,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) transforms((,newability[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
@@ -983,7 +1009,7 @@ subtype=Elspeth
name=Elspeth, Sun's Nemesis name=Elspeth, Sun's Nemesis
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto={C(0/0,-1,Loyalty)}:name(-1: Up to two creature gets +2/+1) target(<upto:2>creature|myBattlefield) 2/1 ueot auto={C(0/0,-1,Loyalty)}:name(-1: Up to two creature gets +2/+1) target(<upto:2>creature|myBattlefield) 2/1 ueot
auto={C(0/0,-2,Loyalty)}:name(-2: Create two human soldiers) token(Human Soldier,Creature Human Soldier,1/1,white)*2 auto={C(0/0,-2,Loyalty)}:name(-2: Create two human soldiers) _HUMANSOLDIERTOKEN_*2
auto={C(0/0,-6,Loyalty)}:name(-6: Gain 5 life) life:5 controller auto={C(0/0,-6,Loyalty)}:name(-6: Gain 5 life) life:5 controller
retrace={4}{W}{W}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)} name(Escape) retrace={4}{W}{W}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)} name(Escape)
text=-1: Up to two target creatures you control each get +2/+1 until end of turn. -- -2: Create two 1/1 white Human Soldier creature tokens. -- -3: You gain 5 life. -- Escape-{4}{W}{W}, Exile four other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.) text=-1: Up to two target creatures you control each get +2/+1 until end of turn. -- -2: Create two 1/1 white Human Soldier creature tokens. -- -3: You gain 5 life. -- Escape-{4}{W}{W}, Exile four other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.)
@@ -1255,7 +1281,7 @@ auto=counter(0/0,5,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Untap all creatures and get +1/+1) all(creature|mybattlefield) 1/1 && all(creature|mybattlefield) untap ueot auto={C(0/0,2,Loyalty)}:name(+2: Untap all creatures and get +1/+1) all(creature|mybattlefield) 1/1 && all(creature|mybattlefield) untap ueot
auto={C(0/0,0,Loyalty)}:name(+0: Transforms to Human Soldier 5/5) transforms((Creature Human Soldier,setpower=5,settoughness=5,indestructible,newability[preventAllDamage to(this)])) ueot auto={C(0/0,0,Loyalty)}:name(+0: Transforms to Human Soldier 5/5) transforms((Creature Human Soldier,setpower=5,settoughness=5,indestructible,newability[preventAllDamage to(this)])) ueot
auto={C(0/0,-10,Loyalty)}:name(10: Tap all creatures and +2/+2) all(creature|opponentbattlefield) tap && all(creature|mybattlefield) 2/2 ueot auto={C(0/0,-10,Loyalty)}:name(10: Tap all creatures and +2/+2) all(creature|opponentbattlefield) tap && all(creature|mybattlefield) 2/2 ueot
text=+2: Untap all creatures you control. Those creatures get +1/+1 until end of turn. -- 0: Until end of turn, Gideon, Martial Paragon becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn. -- -10: Creatures you control get +2/+2 until end of turn. Tap all creatures your opponents control. text=+2: Untap all creatures you control. Those creatures get +1/+1 until end of turn. -- 0: Until end of turn, Gideon, Martial Paragon becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn. -- -10: Creatures you control get +2/+2 until end of turn. Tap all creatures your opponents control.
mana={4}{W} mana={4}{W}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Gideon subtype=Gideon
@@ -1544,7 +1570,7 @@ subtype=Jace
[/card] [/card]
[card] [card]
name=Jace, the Perfected Mind name=Jace, the Perfected Mind
auto=if paid(alternative) then counter(0/0,3,loyalty) auto=alternative counter(0/0,3,loyalty)
auto=ifnot paid(alternative) then counter(0/0,5,loyalty) auto=ifnot paid(alternative) then counter(0/0,5,loyalty)
auto={C(0/0,+1,Loyalty)}:name(+1: Target creature gains -3/-0) target(creature|battlefield) transforms((,newability[-3/-0])) uynt auto={C(0/0,+1,Loyalty)}:name(+1: Target creature gains -3/-0) target(creature|battlefield) transforms((,newability[-3/-0])) uynt
auto={C(0/0,+1,Loyalty)}:name(+1: Don't target any creature) donothing auto={C(0/0,+1,Loyalty)}:name(+1: Don't target any creature) donothing
@@ -1711,7 +1737,7 @@ name=Kaito, Bane of Nightmares
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
autohand={1}{U}{B}{N}:ninjutsu autohand={1}{U}{B}{N}:ninjutsu
auto=this(variable{controllerturn}>0) becomes(Ninja Creature,3/4,hexproof) auto=this(variable{controllerturn}>0) becomes(Ninja Creature,3/4,hexproof)
auto={C(0/0,+1,Loyalty)}:name(emblem) emblem transforms((,newability[all(ninja|myBattlefield) 1/1])) forever dontremove auto={C(0/0,+1,Loyalty)}:name(emblem) emblem transforms((,newability[lord(ninja|myBattlefield) 1/1])) forever dontremove
auto={C(0/0,0,Loyalty)}:name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed all(*[zpos=1]|mylibrary) transforms((,newability[draw:1 controller])) oneshot afterrevealedend revealend auto={C(0/0,0,Loyalty)}:name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(<upto:psurveiloffsetplus2plusend>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<psurveiloffsetplus2plusend>*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed all(*[zpos=1]|mylibrary) transforms((,newability[draw:1 controller])) oneshot afterrevealedend revealend
auto={C(0/0,-2,Loyalty)}:name(-2 Tap target creature) target(creature) transforms((,newability[tap],newability[counter(0/0.2.Stun)])) auto={C(0/0,-2,Loyalty)}:name(-2 Tap target creature) target(creature) transforms((,newability[tap],newability[counter(0/0.2.Stun)]))
text=Ninjutsu {1}{U}{B} ({1}{U}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- During your turn, as long as Kaito has one or more loyalty counters on him, he's a 3/4 Ninja creature and has hexproof. -- [+1]: You get an emblem with "Ninjas you control get +1/+1." -- [0]: Surveil 2. Then draw a card for each opponent who lost life this turn. -- [-2]: Tap target creature. Put two stun counters on it. text=Ninjutsu {1}{U}{B} ({1}{U}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- During your turn, as long as Kaito has one or more loyalty counters on him, he's a 3/4 Ninja creature and has hexproof. -- [+1]: You get an emblem with "Ninjas you control get +1/+1." -- [0]: Surveil 2. Then draw a card for each opponent who lost life this turn. -- [-2]: Tap target creature. Put two stun counters on it.
@@ -1720,6 +1746,19 @@ type=Legendary Planeswalker
subtype=Kaito subtype=Kaito
[/card] [/card]
[card] [card]
name=Kaito, Cunning Infiltrator
auto=counter(0/0,3,loyalty)
auto=@combatdamagefoeof(player) from(creature|mybattlefield):counter(0/0,1,Loyalty)
auto={C(0/0,+1,Loyalty)}:target(creature|myBattlefield) unblockable && _LOOT_
auto={C(0/0,+1,Loyalty)}:name(+1: No target, only draw and discard) _LOOT_
auto={C(0/0,-2,Loyalty)}:create(ninja:creature ninja:2/1:blue)
auto={C(0/0,-9,Loyalty)}:name(-9: Emblem) emblem transforms((,newability[@movedTo(*|stack):create(ninja:creature ninja:2/1:blue)])) forever dontremove
text=Whenever a creature you control deals combat damage to a player, put a loyalty counter on Kaito. -- [+1]: Up to one target creature you control can't be blocked this turn. Draw a card, then discard a card. -- [-2]: Create a 2/1 blue Ninja creature token. -- [-9]: You get an emblem with "Whenever a player casts a spell, you create a 2/1 blue Ninja creature token."
mana={1}{U}{U}
type=Legendary Planeswalker
subtype=Kaito
[/card]
[card]
name=Kaito, Dancing Shadow name=Kaito, Dancing Shadow
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto=@combatdamaged(player) from(creature|myBattlefield) turnlimited:may name(Return to hand) target(creature[attacking]|myBattlefield) moveto(hand) && all(this) transforms((,newability[canloyaltytwice])) ueot auto=@combatdamaged(player) from(creature|myBattlefield) turnlimited:may name(Return to hand) target(creature[attacking]|myBattlefield) moveto(hand) && all(this) transforms((,newability[canloyaltytwice])) ueot
@@ -1855,8 +1894,8 @@ subtype=Kaya
[card] [card]
name=Kaya, Geist Hunter name=Kaya, Geist Hunter
auto=counter(0/0,3,Loyalty) auto=counter(0/0,3,Loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Creatures gain deathtouch) all(creature|mybattlefield) transforms((,deathtouch)) ueot auto={C(0/0,1,Loyalty)}:name(+1: Creatures gain deathtouch) all(creature|mybattlefield) deathtouch ueot
auto={C(0/0,1,Loyalty)}:name(+1: Creatures gain deathtouch and put counter) target(creature[token]|mybattlefield) counter(1/1) && all(creature|mybattlefield) transforms((,deathtouch)) ueot auto={C(0/0,1,Loyalty)}:name(+1: Creatures gain deathtouch and put counter) target(creature[token]|mybattlefield) counter(1/1) && all(creature|mybattlefield) deathtouch ueot
auto={C(0/0,-2,Loyalty)}:name(-2: Double the tokens) transforms((,newability[@tokencreated(*|myBattlefield):name(Double the token) all(trigger) clone options(notrigger)])) ueot auto={C(0/0,-2,Loyalty)}:name(-2: Double the tokens) transforms((,newability[@tokencreated(*|myBattlefield):name(Double the token) all(trigger) clone options(notrigger)])) ueot
auto={C(0/0,-6,Loyalty)}:name(-6: Exile cards) all(*|graveyard) moveto(exile) and!( _SPIRITTOKEN_ )! auto={C(0/0,-6,Loyalty)}:name(-6: Exile cards) all(*|graveyard) moveto(exile) and!( _SPIRITTOKEN_ )!
text=+1: Creatures you control gain deathtouch until end of turn. Put a +1/+1 counter on up to one target creature token you control. -- -2: Until end of turn, if one or more tokens would be created under your control, twice that many of those tokens are created instead. -- -6: Exile all cards from all graveyards, then create a 1/1 white Spirit creature token with flying for each card exiled this way. text=+1: Creatures you control gain deathtouch until end of turn. Put a +1/+1 counter on up to one target creature token you control. -- -2: Until end of turn, if one or more tokens would be created under your control, twice that many of those tokens are created instead. -- -6: Exile all cards from all graveyards, then create a 1/1 white Spirit creature token with flying for each card exiled this way.
@@ -1911,6 +1950,18 @@ type=Legendary Planeswalker
subtype=Kiora subtype=Kiora
[/card] [/card]
[card] [card]
name=Kiora, Master of the Depths
auto=counter(0/0,4,loyalty)
aicode=activate target(*[zpos<=4]|mylibrary) moveto(hand)
auto={C(0/0,1,Loyalty)}:name(+1: Untap target creature and land) untap target(<upto:1>creature) && ability$!may name(Untap land) untap target(<upto:1>land)!$ controller
auto={C(0/0,-2,Loyalty)}:name(-2: Reveal the top four and put in hand creature or land) name(look) reveal:4 optionone name(Get a card) target(<1>*[creature;land]|reveal) moveTo(myHand) optiononeend optiontwo name(put in grave) all(*|reveal) moveTo(myGraveyard) optiontwoend revealend
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Whenever enter, fight another creature" create a 8/8 octopus) emblem transforms((,newability[@movedTo(creature|myBattlefield):may name(fight) all(trigger[to]) _FIGHT_],newability[create(Octopus:Creature Octopus:8/8:blue)*3])) forever dontremove
text=+1: Untap up to one target creature and up to one target land. -- ⿿2: Reveal the top four cards of your library. You may put a creature card and/or a land card from among them into your hand. Put the rest into your graveyard. -- ⿿8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may have it fight target creature." Then create three 8/8 blue Octopus creature tokens.
mana={2}{G}{U}
type=Legendary Planeswalker
subtype=Kiora
[/card]
[card]
name=Kiora, the Crashing Wave name=Kiora, the Crashing Wave
auto=counter(0/0,2,loyalty) auto=counter(0/0,2,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Prevention all damage dealt by and to) target(*|opponentbattlefield) transforms((,newability[preventalldamage from(this)],newability[preventalldamage to(this)])) uynt auto={C(0/0,1,Loyalty)}:name(+1: Prevention all damage dealt by and to) target(*|opponentbattlefield) transforms((,newability[preventalldamage from(this)],newability[preventalldamage to(this)])) uynt
@@ -2140,7 +2191,7 @@ subtype=Windgrace
[card] [card]
name=Lukka, Bound to Ruin name=Lukka, Bound to Ruin
auto=ifnot paid(alternative) then counter(0/0,5,loyalty) auto=ifnot paid(alternative) then counter(0/0,5,loyalty)
auto=if paid(alternative) then counter(0/0,3,loyalty) auto=alternative counter(0/0,3,loyalty)
auto=aslongas(creature|mybattlefield,myrestrictedcastingzone) {C(0/0,+1,Loyalty)}:name(+1: Add mana) name(+1: Add mana) add{R}{G} auto=aslongas(creature|mybattlefield,myrestrictedcastingzone) {C(0/0,+1,Loyalty)}:name(+1: Add mana) name(+1: Add mana) add{R}{G}
auto={C(0/0,-1,Loyalty)}:name(-1: Create beast) token(Phyrexian Beast,Creature Phyrexian Beast,3/3,green,poisontoxic) auto={C(0/0,-1,Loyalty)}:name(-1: Create beast) token(Phyrexian Beast,Creature Phyrexian Beast,3/3,green,poisontoxic)
auto=aslongas(creature[power=1]|mybattlefield) {C(0/0,-4,Loyalty)}:name(-4: Deal 1 damage) name(-4: Deal 1 damage) thisforeach(variable{1}) ability$!name(Deal 1 damage) damage:1 target(*[creature;planeswalker]|battlefield)!$ controller auto=aslongas(creature[power=1]|mybattlefield) {C(0/0,-4,Loyalty)}:name(-4: Deal 1 damage) name(-4: Deal 1 damage) thisforeach(variable{1}) ability$!name(Deal 1 damage) damage:1 target(*[creature;planeswalker]|battlefield)!$ controller
@@ -2312,7 +2363,7 @@ subtype=Nahiri
[card] [card]
name=Nahiri, the Unforgiving name=Nahiri, the Unforgiving
auto=ifnot paid(alternative) then counter(0/0,5,loyalty) auto=ifnot paid(alternative) then counter(0/0,5,loyalty)
auto=if paid(alternative) then counter(0/0,3,loyalty) auto=alternative counter(0/0,3,loyalty)
auto={C(0/0,+1,Loyalty)}:name(+1: Creature must attack) target(creature|battlefield) transforms((,newability[mustattack])) uynt auto={C(0/0,+1,Loyalty)}:name(+1: Creature must attack) target(creature|battlefield) transforms((,newability[mustattack])) uynt
auto={C(0/0,+1,Loyalty)}:name(+1: Don't target any creature) donothing auto={C(0/0,+1,Loyalty)}:name(+1: Don't target any creature) donothing
auto={C(0/0,+1,Loyalty)}:name(+1: Discard and draw) _DISCARD&DRAW_ auto={C(0/0,+1,Loyalty)}:name(+1: Discard and draw) _DISCARD&DRAW_
@@ -2501,7 +2552,7 @@ subtype=Nissa
[card] [card]
name=Nissa, Ascended Animist name=Nissa, Ascended Animist
auto=ifnot paid(kicker) then ifnot paid(alternative) then counter(0/0,7,loyalty) auto=ifnot paid(kicker) then ifnot paid(alternative) then counter(0/0,7,loyalty)
auto=if paid(alternative) then counter(0/0,5,loyalty) auto=alternative counter(0/0,5,loyalty)
auto=if paid(kicker) then counter(0/0,3,loyalty) auto=if paid(kicker) then counter(0/0,3,loyalty)
auto={C(0/0,+1,Loyalty)}:name(+1: Create horror) token(Phyrexian Horror,Creature Phyrexian Horror,hascntloyalty/hascntloyalty,green) auto={C(0/0,+1,Loyalty)}:name(+1: Create horror) token(Phyrexian Horror,Creature Phyrexian Horror,hascntloyalty/hascntloyalty,green)
auto={C(0/0,-1,Loyalty)}:name(-1: Destroy artifact or enchantment) destroy target(*[artifact;enchantment]|battlefield) auto={C(0/0,-1,Loyalty)}:name(-1: Destroy artifact or enchantment) destroy target(*[artifact;enchantment]|battlefield)
@@ -2764,7 +2815,7 @@ otherrestriction=can play planeswalker,compare(isflipped)~equalto~1
restriction=compare(isflipped)~equalto~0 restriction=compare(isflipped)~equalto~0
anyzone={0}:doubleside(Will, Scholar of Frost) anyzone={0}:doubleside(Will, Scholar of Frost)
autostack=if paid(alternative) then name(Will, Scholar of Frost) name(Will, Scholar of Frost) flip(Will, Scholar of Frost) forcetype(Legendary Planeswalker) autostack=if paid(alternative) then name(Will, Scholar of Frost) name(Will, Scholar of Frost) flip(Will, Scholar of Frost) forcetype(Legendary Planeswalker)
auto=if paid(alternative) then counter(0/0,4,Loyalty) else counter(0/0,2,loyalty) auto=alternative counter(0/0,4,Loyalty) else counter(0/0,2,loyalty)
auto=this(variable{isflipped}<1) lord(instant,sorcery|mycastingzone) altercost(colorless,-1) auto=this(variable{isflipped}<1) lord(instant,sorcery|mycastingzone) altercost(colorless,-1)
auto=this(variable{isflipped}<1) {C(0/0,1,Loyalty)}:name(+1: Deals damage) name(+1: Deals damage) if compare(pdrewcount)~lessthan~3 then damage:1 opponent else damage:3 opponent auto=this(variable{isflipped}<1) {C(0/0,1,Loyalty)}:name(+1: Deals damage) name(+1: Deals damage) if compare(pdrewcount)~lessthan~3 then damage:1 opponent else damage:3 opponent
auto=this(variable{isflipped}<1) {C(0/0,-4,Loyalty)}:name(-4: Emblem copy spells) name(-4: Emblem copy spells) emblem transforms((,newability[@movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) transforms((,newability[pay[[{2}]] name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever])) forever dontremove auto=this(variable{isflipped}<1) {C(0/0,-4,Loyalty)}:name(-4: Emblem copy spells) name(-4: Emblem copy spells) emblem transforms((,newability[@movedto(*[instant;sorcery]|mystack):all(trigger[to]<1>) transforms((,newability[pay[[{2}]] name(copy spell) activate name(copy spell) castcard(copied noevent)])) forever])) forever dontremove
@@ -2812,7 +2863,7 @@ abilities=canbecommander
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Servo) _SERVOTOKEN_ auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Servo) _SERVOTOKEN_
auto={C(0/0,1,Loyalty)}:name(-1: The next spell has affinity for artifacts) target(*|mycastingzone) transforms((,newability[affinityartifacts])) ueot auto={C(0/0,1,Loyalty)}:name(-1: The next spell has affinity for artifacts) target(*|mycastingzone) transforms((,newability[affinityartifacts])) ueot
auto={C(0/0,-7,Loyalty)}:name(-7: Create a token for each artifact) clone all(artifact|mybattlefield) with (unearth) auto={C(0/0,-7,Loyalty)}:name(-7: Create a token for each artifact) clone all(artifact|mybattlefield) with(unearth)
text=+1: Create a 1/1 colorless Servo artifact creature token. -- +1: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it. -- -7: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -- Saheeli, the Gifted can be your commander. text=+1: Create a 1/1 colorless Servo artifact creature token. -- +1: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it. -- -7: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -- Saheeli, the Gifted can be your commander.
mana={2}{U}{R} mana={2}{U}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -3087,7 +3138,7 @@ auto={C(0/0,1,Loyalty)}:name(+1: Look four and move sorcery to hand) reveal:4 op
auto={C(0/0,1,Loyalty)}:name(+1: Look four and move enchantment to hand) reveal:4 optionone name(Get enchantment) target(<upto:4>enchantment|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look four and move enchantment to hand) reveal:4 optionone name(Get enchantment) target(<upto:4>enchantment|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend
auto={C(0/0,1,Loyalty)}:name(+1: Look four and move planeswalker to hand) reveal:4 optionone name(Get planeswalker) target(<upto:4>planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look four and move planeswalker to hand) reveal:4 optionone name(Get planeswalker) target(<upto:4>planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend
auto={C(0/0,1,Loyalty)}:name(+1: Look four and move artifact to hand) reveal:4 optionone name(Get artifact) target(<upto:4>artifact|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look four and move artifact to hand) reveal:4 optionone name(Get artifact) target(<upto:4>artifact|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend
auto={C(0/0,1,Loyalty)}:name(+1: Look four and move tribal to hand) reveal:4 optionone name(Get tribal) target(<upto:4>tribal|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look four and move kindred to hand) reveal:4 optionone name(Get kindred) target(<upto:4>kindred|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend
auto={C(0/0,-3,Loyalty)}:name(-3: Return target card from graveyard) moveTo(myHand) target(*|myGraveyard) auto={C(0/0,-3,Loyalty)}:name(-3: Return target card from graveyard) moveTo(myHand) target(*|myGraveyard)
text=Spells and abilities your opponents control can't cause you to discard cards or sacrifice permanents. -- +1: Choose a nonland card name, then reveal the top four cards of your library. Put all cards with the chosen name from among them into your hand and the rest into your graveyard. -- -3: Return target card from your graveyard to your hand. text=Spells and abilities your opponents control can't cause you to discard cards or sacrifice permanents. -- +1: Choose a nonland card name, then reveal the top four cards of your library. Put all cards with the chosen name from among them into your hand and the rest into your graveyard. -- -3: Return target card from your graveyard to your hand.
mana={2}{G}{U} mana={2}{G}{U}
@@ -3097,7 +3148,7 @@ subtype=Tamiyo
[card] [card]
name=Tamiyo, Compleated Sage name=Tamiyo, Compleated Sage
auto=ifnot paid(alternative) then counter(0/0,5,loyalty) auto=ifnot paid(alternative) then counter(0/0,5,loyalty)
auto=if paid(alternative) then counter(0/0,3,loyalty) auto=alternative counter(0/0,3,loyalty)
auto={C(0/0,+1,Loyalty)}:name(+1: Tap artifact or creature) target(*[artifact;creature]|battlefield) freeze auto={C(0/0,+1,Loyalty)}:name(+1: Tap artifact or creature) target(*[artifact;creature]|battlefield) freeze
auto={C(0/0,+1,Loyalty)}:name(+1: Don't tap anything) donothing auto={C(0/0,+1,Loyalty)}:name(+1: Don't tap anything) donothing
auto={C(0/0,0,Loyalty)}:name(0: Exile and copy with cost 0) target(*[-land&manacost=0]|mygraveyard) moveto(myexile) and!( clone )! auto={C(0/0,0,Loyalty)}:name(0: Exile and copy with cost 0) target(*[-land&manacost=0]|mygraveyard) moveto(myexile) and!( clone )!
@@ -3235,6 +3286,7 @@ auto=counter(0/0,5,loyalty)
aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos=2]|mylibrary)])) ueot aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos=2]|mylibrary)])) ueot
auto={C(0/0,1,Loyalty)}:name(+1: Look at the top two, one in hand other to bottom) name(Look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look at the top two, one in hand other to bottom) name(Look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend revealend
auto={C(0/0,-1,Loyalty)}:name(-1: Untap up to four permanents) untap target(<upto:4>*|battlefield) auto={C(0/0,-1,Loyalty)}:name(-1: Untap up to four permanents) untap target(<upto:4>*|battlefield)
auto={C(0/0,-10,Loyalty)}:name(Emblem) emblem transforms((,newability[lord(planeswalker|myBattlefield) canloyaltyasinst])) forever dontremove
text=+1: Look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library. -- -1: Untap up to four target permanents. -- -10: You get an emblem with "You may activate loyalty abilities of planeswalkers you control on any player's turn any time you could cast an instant." -- Teferi, Temporal Archmage can be your commander. text=+1: Look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library. -- -1: Untap up to four target permanents. -- -10: You get an emblem with "You may activate loyalty abilities of planeswalkers you control on any player's turn any time you could cast an instant." -- Teferi, Temporal Archmage can be your commander.
mana={4}{U}{U} mana={4}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -3614,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)
@@ -3680,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])
@@ -3730,7 +3795,7 @@ abilities=showfromtoplibrary,canplaycreaturelibrarytop
aicode=activate moveto(myBattlefield) target(creature[manacost<=storedmanacost]|mylibrary) aicode=activate moveto(myBattlefield) target(creature[manacost<=storedmanacost]|mylibrary)
auto=counter(0/0,3,Loyalty) auto=counter(0/0,3,Loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a Creature Beast 3/3) token(Beast Viv) auto={C(0/0,1,Loyalty)}:name(+1: Create a Creature Beast 3/3) token(Beast Viv)
auto={C(0/0,-2,Loyalty)}:name(-2: Cast a creature to search a lesser creature) emblem transforms((,newability[@movedTo(creature|myStak):moveTo(myBattlefield) target(creature[manacost<=storedmanacost]|myLibrary) && shuffle])) oneshot auto={C(0/0,-2,Loyalty)}:name(-2: Cast a creature to search a lesser creature) emblem transforms((,newability[@movedTo(creature|myStack):moveTo(myBattlefield) target(creature[manacost<=storedmanacost]|myLibrary) && shuffle])) oneshot
text=You may look at the top card of your library any time. -- You may cast creature spells from the top of your library. -- +1: Create a 3/3 green Beast creature token. Put your choice of a vigilance counter, a reach counter, or a trample counter on it. -- -2: When you cast your next creature spell this turn, search your library for a creature card with lesser mana value, put it onto the battlefield, then shuffle. text=You may look at the top card of your library any time. -- You may cast creature spells from the top of your library. -- +1: Create a 3/3 green Beast creature token. Put your choice of a vigilance counter, a reach counter, or a trample counter on it. -- -2: When you cast your next creature spell this turn, search your library for a creature card with lesser mana value, put it onto the battlefield, then shuffle.
mana={3}{G}{G} mana={3}{G}{G}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -3761,7 +3826,7 @@ subtype=Vraska
[/card] [/card]
[card] [card]
name=Vraska, Betrayal's Sting name=Vraska, Betrayal's Sting
auto=if paid(alternative) then counter(0/0,4,loyalty) auto=alternative counter(0/0,4,loyalty)
auto=ifnot paid(alternative) then counter(0/0,6,loyalty) auto=ifnot paid(alternative) then counter(0/0,6,loyalty)
auto={C(0/0,0,Loyalty)}:name(0: Draw card and lose life) draw:1 controller && life:-1 controller && _PROLIFERATE_ auto={C(0/0,0,Loyalty)}:name(0: Draw card and lose life) draw:1 controller && life:-1 controller && _PROLIFERATE_
auto={C(0/0,-2,Loyalty)}:name(-2: Creature becomes treasure) target(creature|battlefield) transforms((removeallsubtypes,removeallcolors,newability[becomes(Treasure artifact)],,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={C(0/0,-2,Loyalty)}:name(-2: Creature becomes treasure) target(creature|battlefield) transforms((removeallsubtypes,removeallcolors,newability[becomes(Treasure artifact)],,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
@@ -3927,4 +3992,4 @@ text=+1: Creatures you control get +1/+0 and gain haste until end of turn. -- 0:
mana={2}{R}{R} mana={2}{R}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Zariel subtype=Zariel
[/card] [/card]

View File

@@ -2,5 +2,5 @@
#Sun, 20 May 2020 11:56:35 +0200 #Sun, 20 May 2020 11:56:35 +0200
build.major=0 build.major=0
build.minor=25 build.minor=25
build.point=3 build.point=5

View File

@@ -88,8 +88,8 @@ Mod by: Vitty85
#define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) #define WAGIC_CORE_VERSION_STRING "core_" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION)
#define WAGIC_RESOURCE_NAME "Wagic-core-" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) ".zip" #define WAGIC_RESOURCE_NAME "Wagic-core-" VERSION_STRINGIFY(WAGIC_RESOURCE_VERSION) ".zip"
#define WAGIC_RELEASE_NAME "wagic-v" WAGIC_VERSION_STRING #define WAGIC_RELEASE_NAME "wagic-v" WAGIC_VERSION_STRING
#define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases" WAGIC_RELEASE_NAME "/" WAGIC_RESOURCE_NAME #define WAGIC_RESOURCE_URL "https://github.com/WagicProject/wagic/releases/download/" WAGIC_RELEASE_NAME "/" WAGIC_RESOURCE_NAME
#endif #endif
</echo> </echo>

View File

@@ -76,7 +76,7 @@ class AIPlayerBaka: public AIPlayer{
virtual int chooseBlockers(); virtual int chooseBlockers();
virtual int canFirstStrikeKill(MTGCardInstance * card, MTGCardInstance *ennemy); virtual int canFirstStrikeKill(MTGCardInstance * card, MTGCardInstance *ennemy);
virtual int effectBadOrGood(MTGCardInstance * card, int mode = MODE_PUTINTOPLAY, TargetChooser * tc = NULL); virtual int effectBadOrGood(MTGCardInstance * card, int mode = MODE_PUTINTOPLAY, TargetChooser * tc = NULL);
virtual bool shouldAIForceAttack(MTGCardInstance* card, bool globalAttack);
// returns 1 if the AI algorithm supports a given cost (ex:simple mana cost), 0 otherwise (ex: cost involves Sacrificing a target) // returns 1 if the AI algorithm supports a given cost (ex:simple mana cost), 0 otherwise (ex: cost involves Sacrificing a target)
virtual int CanHandleCost(ManaCost * cost, MTGCardInstance * card = NULL); virtual int CanHandleCost(ManaCost * cost, MTGCardInstance * card = NULL);

View File

@@ -364,7 +364,8 @@ class Constants
EQPASINST = 235, EQPASINST = 235,
CANLOYALTYASINST = 236, CANLOYALTYASINST = 236,
CANPLAYENCHANTMENTTOPLIBRARY = 237,//enchantment CANPLAYENCHANTMENTTOPLIBRARY = 237,//enchantment
NB_BASIC_ABILITIES = 238, AFFINITYTWOALLDEADCREATURES = 238,
NB_BASIC_ABILITIES = 239,
RARITY_S = 'S', //Special Rarity RARITY_S = 'S', //Special Rarity
RARITY_M = 'M', //Mythics RARITY_M = 'M', //Mythics

View File

@@ -26,7 +26,7 @@ public:
TYPE_EQUIPMENT = 11, TYPE_EQUIPMENT = 11,
TYPE_AURA = 12, TYPE_AURA = 12,
TYPE_PLANESWALKER = 13, TYPE_PLANESWALKER = 13,
TYPE_TRIBAL = 14, TYPE_KINDRED = 14,
TYPE_PLANE = 15, TYPE_PLANE = 15,
TYPE_SCHEME = 16, TYPE_SCHEME = 16,
TYPE_VANGUARD = 17, TYPE_VANGUARD = 17,

View File

@@ -14,7 +14,7 @@ Mod by: Vitty85
/* Wagic versions */ /* Wagic versions */
#define WAGIC_VERSION_MAJOR 0 #define WAGIC_VERSION_MAJOR 0
#define WAGIC_VERSION_MEDIUM 25 #define WAGIC_VERSION_MEDIUM 25
#define WAGIC_VERSION_MINOR 3 #define WAGIC_VERSION_MINOR 5
#define VERSION_DOT(a, b, c) a ##.## b ##.## c #define VERSION_DOT(a, b, c) a ##.## b ##.## c
#define VERSION_WITHOUT_DOT(a, b, c) a ## b ## c #define VERSION_WITHOUT_DOT(a, b, c) a ## b ## c

View File

@@ -46,9 +46,9 @@ int OrderedAIAction::getEfficiency(AADamager * aad)
return 0; return 0;
} }
if(p && target) if(p && target)
if(p == target->controller()) if(p == target->controller())
return 0; return 0;
if (dTarget && aad && (aad->getDamage() == dTarget->toughness)) if (dTarget && aad && (aad->getDamage() == dTarget->toughness))
return 100; return 100;
@@ -107,7 +107,7 @@ int OrderedAIAction::getEfficiency()
{ {
target = a->source; target = a->source;
} }
AACastCard * CC = dynamic_cast<AACastCard*> (a); AACastCard * CC = dynamic_cast<AACastCard*> (a);
if (CC) if (CC)
return 99; return 99;
@@ -126,13 +126,13 @@ int OrderedAIAction::getEfficiency()
break; break;
if (!coreAbilityCardTarget->regenerateTokens && currentPhase == MTG_PHASE_COMBATBLOCKERS if (!coreAbilityCardTarget->regenerateTokens && currentPhase == MTG_PHASE_COMBATBLOCKERS
&& (coreAbilityCardTarget->defenser || coreAbilityCardTarget->blockers.size()) && (coreAbilityCardTarget->defenser || coreAbilityCardTarget->blockers.size())
) )
{ {
efficiency = 95; efficiency = 95;
} }
//TODO If the card is the target of a damage spell //TODO If the card is the target of a damage spell
break; break;
} }
case MTGAbility::STANDARD_PREVENT: case MTGAbility::STANDARD_PREVENT:
{ {
@@ -272,7 +272,7 @@ int OrderedAIAction::getEfficiency()
} }
case MTGAbility::STANDARD_PUMP: case MTGAbility::STANDARD_PUMP:
{ {
efficiency = 0; efficiency = 0;
if(!coreAbilityCardTarget) if(!coreAbilityCardTarget)
break; break;
if(!target && !dynamic_cast<ALord*> (a) && (((MTGCardInstance *)a->source)->hasSubtype(Subtypes::TYPE_AURA) || ((MTGCardInstance *)a->source)->hasSubtype(Subtypes::TYPE_EQUIPMENT))) if(!target && !dynamic_cast<ALord*> (a) && (((MTGCardInstance *)a->source)->hasSubtype(Subtypes::TYPE_AURA) || ((MTGCardInstance *)a->source)->hasSubtype(Subtypes::TYPE_EQUIPMENT)))
@@ -296,9 +296,9 @@ int OrderedAIAction::getEfficiency()
int suggestion = af.abilityEfficiency(a, p, MODE_ABILITY); int suggestion = af.abilityEfficiency(a, p, MODE_ABILITY);
//i do not set a starting eff. on this ability, this allows Ai to sometimes randomly do it as it normally does. //i do not set a starting eff. on this ability, this allows Ai to sometimes randomly do it as it normally does.
int currentPhase = g->getCurrentGamePhase(); int currentPhase = g->getCurrentGamePhase();
if ((currentPhase == MTG_PHASE_COMBATBLOCKERS) || (currentPhase == MTG_PHASE_COMBATATTACKERS)) if ((currentPhase == MTG_PHASE_COMBATBLOCKERS) || (currentPhase == MTG_PHASE_COMBATATTACKERS))
{ {
if (suggestion == BAKA_EFFECT_GOOD && target->controller() == p) if (suggestion == BAKA_EFFECT_GOOD && target->controller() == p)
{ {
if(coreAbilityCardTarget->defenser || coreAbilityCardTarget->blockers.size()) if(coreAbilityCardTarget->defenser || coreAbilityCardTarget->blockers.size())
{ {
@@ -350,30 +350,30 @@ int OrderedAIAction::getEfficiency()
break; break;
} }
case MTGAbility::MANA_PRODUCER://only way to hit this condition is nested manaabilities, ai skips manaproducers by defualt when finding an ability to use. case MTGAbility::MANA_PRODUCER://only way to hit this condition is nested manaabilities, ai skips manaproducers by defualt when finding an ability to use.
{ {
AManaProducer * manamaker = dynamic_cast<AManaProducer*>(a); AManaProducer * manamaker = dynamic_cast<AManaProducer*>(a);
GenericActivatedAbility * GAA = dynamic_cast<GenericActivatedAbility*>(ability); GenericActivatedAbility * GAA = dynamic_cast<GenericActivatedAbility*>(ability);
if(GAA) if(GAA)
{ {
AForeach * forMana = dynamic_cast<AForeach*>(GAA->ability); AForeach * forMana = dynamic_cast<AForeach*>(GAA->ability);
if (manamaker && forMana) if (manamaker && forMana)
{ {
int outPut = forMana->checkActivation(); int outPut = forMana->checkActivation();
if (ability->getCost() && outPut > int(ability->getCost()->getConvertedCost() +1) && currentPhase == MTG_PHASE_FIRSTMAIN && ability->source->controller()->game->hand->nb_cards > 1) if (ability->getCost() && outPut > int(ability->getCost()->getConvertedCost() +1) && currentPhase == MTG_PHASE_FIRSTMAIN && ability->source->controller()->game->hand->nb_cards > 1)
efficiency = 60;//might be a bit random, but better than never using them. efficiency = 60;//might be a bit random, but better than never using them.
} }
} }
else else
efficiency = 0; efficiency = 0;
break; break;
} }
case MTGAbility::STANDARDABILITYGRANT: case MTGAbility::STANDARDABILITYGRANT:
{ {
efficiency = 0; efficiency = 0;
if (!target) if (!target)
break; break;
//ensuring that Ai grants abilities to creatures during first main, so it can actually use them in combat. //ensuring that Ai grants abilities to creatures during first main, so it can actually use them in combat.
//quick note: the eff is multiplied by creatures ranking then divided by the number of cards in hand. //quick note: the eff is multiplied by creatures ranking then divided by the number of cards in hand.
//the reason i do this is to encourage more casting and less waste of mana on abilities. //the reason i do this is to encourage more casting and less waste of mana on abilities.
@@ -391,8 +391,8 @@ int OrderedAIAction::getEfficiency()
} }
if (!target->has(a->abilitygranted) && g->getCurrentGamePhase() == MTG_PHASE_COMBATBEGIN if (!target->has(a->abilitygranted) && g->getCurrentGamePhase() == MTG_PHASE_COMBATBEGIN
&& p == target->controller() && p == target->controller()
) )
{ {
efficiency += efficiencyModifier; efficiency += efficiencyModifier;
} }
@@ -404,8 +404,8 @@ int OrderedAIAction::getEfficiency()
} }
if ((suggestion == BAKA_EFFECT_BAD && p == target->controller()) if ((suggestion == BAKA_EFFECT_BAD && p == target->controller())
|| (suggestion == BAKA_EFFECT_GOOD && p != target->controller()) || (suggestion == BAKA_EFFECT_GOOD && p != target->controller())
) )
{ {
efficiency = 0; efficiency = 0;
//stop giving trample to the players creatures. //stop giving trample to the players creatures.
@@ -547,13 +547,13 @@ int OrderedAIAction::getEfficiency()
} }
} }
if ((suggestion == BAKA_EFFECT_BAD && p == target->controller()) if ((suggestion == BAKA_EFFECT_BAD && p == target->controller())
|| (suggestion == BAKA_EFFECT_GOOD && p != target->controller())) || (suggestion == BAKA_EFFECT_GOOD && p != target->controller()))
{ {
efficiency = 0; efficiency = 0;
} }
else else
{ {
//without a base to start with Wrand % 5 almost always returns 0. //without a base to start with Wrand % 5 almost always returns 0.
efficiency = 10 + (owner->getRandomGenerator()->random() % 20); //Small percentage of chance for unknown abilities efficiency = 10 + (owner->getRandomGenerator()->random() % 20); //Small percentage of chance for unknown abilities
} }
} }
@@ -650,7 +650,7 @@ int OrderedAIAction::getEfficiency()
} }
if(p->game->battlefield->countByType("token") >= 25) if(p->game->battlefield->countByType("token") >= 25)
efficiency = 0; efficiency = 0;
} }
else if (GenericRevealAbility * grA = dynamic_cast<GenericRevealAbility *>(a)) else if (GenericRevealAbility * grA = dynamic_cast<GenericRevealAbility *>(a))
{ {
@@ -684,7 +684,7 @@ int OrderedAIAction::getEfficiency()
{ {
AIPlayer * chk = (AIPlayer*)p; AIPlayer * chk = (AIPlayer*)p;
if(may->ability && may->ability->getActionTc() && chk->chooseTarget(may->ability->getActionTc(),NULL,NULL,true)) if(may->ability && may->ability->getActionTc() && chk->chooseTarget(may->ability->getActionTc(),NULL,NULL,true))
efficiency = 50 + (owner->getRandomGenerator()->random() % 50); efficiency = 50 + (owner->getRandomGenerator()->random() % 50);
} }
if (p->game->hand->nb_cards == 0) if (p->game->hand->nb_cards == 0)
efficiency = (int) ((float) efficiency * 1.3); //increase chance of using ability if hand is empty efficiency = (int) ((float) efficiency * 1.3); //increase chance of using ability if hand is empty
@@ -720,18 +720,18 @@ int OrderedAIAction::getEfficiency()
{ {
efficiency += 55; efficiency += 55;
} }
if (ability->source) if (ability->source)
{ {
if(ability->source->hasType(Subtypes::TYPE_PLANESWALKER) || ability->source->hasType(Subtypes::TYPE_BATTLE)) if(ability->source->hasType(Subtypes::TYPE_PLANESWALKER) || ability->source->hasType(Subtypes::TYPE_BATTLE))
efficiency += 50; efficiency += 50;
else if(ability->source->hasType(Subtypes::TYPE_LAND)) else if(ability->source->hasType(Subtypes::TYPE_LAND))
{ // probably a shockland, don't pay life if hand is empty { // probably a shockland, don't pay life if hand is empty
if (p->life<=2) if (p->life<=2)
// check that's not a manland(like Celestial Colonnade) // check that's not a manland(like Celestial Colonnade)
if(efficiency < 50) if(efficiency < 50)
efficiency = 0; efficiency = 0;
} }
} }
SAFE_DELETE(transAbility); SAFE_DELETE(transAbility);
@@ -781,7 +781,7 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
{ {
target = a->source; target = a->source;
} }
AACastCard * CC = dynamic_cast<AACastCard*> (a); AACastCard * CC = dynamic_cast<AACastCard*> (a);
if (CC) if (CC)
return 99; return 99;
@@ -800,8 +800,8 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
break; break;
if (!coreAbilityCardTarget->regenerateTokens && currentPhase == MTG_PHASE_COMBATBLOCKERS if (!coreAbilityCardTarget->regenerateTokens && currentPhase == MTG_PHASE_COMBATBLOCKERS
&& (coreAbilityCardTarget->defenser || coreAbilityCardTarget->blockers.size()) && (coreAbilityCardTarget->defenser || coreAbilityCardTarget->blockers.size())
) )
{ {
eff2 = 95; eff2 = 95;
} }
@@ -1010,27 +1010,27 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
break; break;
} }
case MTGAbility::MANA_PRODUCER://only way to hit this condition is nested manaabilities, ai skips manaproducers by defualt when finding an ability to use. case MTGAbility::MANA_PRODUCER://only way to hit this condition is nested manaabilities, ai skips manaproducers by defualt when finding an ability to use.
{
AManaProducer * manamaker = dynamic_cast<AManaProducer*>(a);
GenericActivatedAbility * GAA = dynamic_cast<GenericActivatedAbility*>(ability2);
AForeach * forMana = dynamic_cast<AForeach*>(GAA->ability);
if (manamaker && forMana)
{ {
int outPut = forMana->checkActivation(); AManaProducer * manamaker = dynamic_cast<AManaProducer*>(a);
if (ability2->getCost() && outPut > int(ability2->getCost()->getConvertedCost() +1) && currentPhase == MTG_PHASE_FIRSTMAIN && ability2->source->controller()->game->hand->nb_cards > 1) GenericActivatedAbility * GAA = dynamic_cast<GenericActivatedAbility*>(ability2);
eff2 = 60;//might be a bit random, but better than never using them. AForeach * forMana = dynamic_cast<AForeach*>(GAA->ability);
if (manamaker && forMana)
{
int outPut = forMana->checkActivation();
if (ability2->getCost() && outPut > int(ability2->getCost()->getConvertedCost() +1) && currentPhase == MTG_PHASE_FIRSTMAIN && ability2->source->controller()->game->hand->nb_cards > 1)
eff2 = 60;//might be a bit random, but better than never using them.
}
else
eff2 = 0;
break;
} }
else
eff2 = 0;
break;
}
case MTGAbility::STANDARDABILITYGRANT: case MTGAbility::STANDARDABILITYGRANT:
{ {
eff2 = 0; eff2 = 0;
if (!target) if (!target)
break; break;
//ensuring that Ai grants abilities to creatures during first main, so it can actually use them in combat. //ensuring that Ai grants abilities to creatures during first main, so it can actually use them in combat.
//quick note: the eff is multiplied by creatures ranking then divided by the number of cards in hand. //quick note: the eff is multiplied by creatures ranking then divided by the number of cards in hand.
//the reason i do this is to encourage more casting and less waste of mana on abilities. //the reason i do this is to encourage more casting and less waste of mana on abilities.
@@ -1048,8 +1048,8 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
} }
if (!target->has(a->abilitygranted) && g->getCurrentGamePhase() == MTG_PHASE_COMBATBEGIN if (!target->has(a->abilitygranted) && g->getCurrentGamePhase() == MTG_PHASE_COMBATBEGIN
&& p == target->controller() && p == target->controller()
) )
{ {
eff2 += eff2Modifier; eff2 += eff2Modifier;
} }
@@ -1061,8 +1061,8 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
} }
if ((suggestion == BAKA_EFFECT_BAD && p == target->controller()) if ((suggestion == BAKA_EFFECT_BAD && p == target->controller())
|| (suggestion == BAKA_EFFECT_GOOD && p != target->controller()) || (suggestion == BAKA_EFFECT_GOOD && p != target->controller())
) )
{ {
eff2 = 0; eff2 = 0;
//stop giving trample to the players creatures. //stop giving trample to the players creatures.
@@ -1203,13 +1203,13 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
} }
} }
if ((suggestion == BAKA_EFFECT_BAD && p == target->controller()) if ((suggestion == BAKA_EFFECT_BAD && p == target->controller())
|| (suggestion == BAKA_EFFECT_GOOD && p != target->controller())) || (suggestion == BAKA_EFFECT_GOOD && p != target->controller()))
{ {
eff2 = 0; eff2 = 0;
} }
else else
{ {
//without a base to start with Wrand % 5 almost always returns 0. //without a base to start with Wrand % 5 almost always returns 0.
eff2 = 10 + (owner->getRandomGenerator()->random() % 20); //Small percentage of chance for unknown abilities eff2 = 10 + (owner->getRandomGenerator()->random() % 20); //Small percentage of chance for unknown abilities
} }
} }
@@ -1290,7 +1290,7 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
} }
if(p->game->battlefield->countByType("token") >= 25) if(p->game->battlefield->countByType("token") >= 25)
eff2 = 0; eff2 = 0;
} }
//At this point the "basic" eff2 is computed, we further tweak it depending on general decisions, independent of theAbility type //At this point the "basic" eff2 is computed, we further tweak it depending on general decisions, independent of theAbility type
@@ -1299,7 +1299,7 @@ int OrderedAIAction::getRevealedEfficiency(MTGAbility * ability2)
{ {
AIPlayer * chk = (AIPlayer*)p; AIPlayer * chk = (AIPlayer*)p;
if(may->ability && may->ability->getActionTc() && chk->chooseTarget(may->ability->getActionTc(),NULL,NULL,true)) if(may->ability && may->ability->getActionTc() && chk->chooseTarget(may->ability->getActionTc(),NULL,NULL,true))
eff2 = 50 + (owner->getRandomGenerator()->random() % 50); eff2 = 50 + (owner->getRandomGenerator()->random() % 50);
} }
if (p->game->hand->nb_cards == 0) if (p->game->hand->nb_cards == 0)
eff2 = (int) ((float) eff2 * 1.3); //increase chance of using ability if hand is empty eff2 = (int) ((float) eff2 * 1.3); //increase chance of using ability if hand is empty
@@ -1351,7 +1351,7 @@ MTGCardInstance * AIPlayerBaka::chooseCard(TargetChooser * tc, MTGCardInstance *
MTGPlayerCards * playerZones = source->controller()->game; MTGPlayerCards * playerZones = source->controller()->game;
if (comboHint && comboHint->cardTargets.size()) if (comboHint && comboHint->cardTargets.size())
{ {
tc = GetComboTc(observer,tc); tc = GetComboTc(observer,tc);
} }
for(int players = 0; players < 2;++players) for(int players = 0; players < 2;++players)
{ {
@@ -1376,9 +1376,9 @@ MTGCardInstance * AIPlayerBaka::chooseCard(TargetChooser * tc, MTGCardInstance *
bool AIPlayerBaka::payTheManaCost(ManaCost * cost, int anytypeofmana, MTGCardInstance * target,vector<MTGAbility*>gotPayments) bool AIPlayerBaka::payTheManaCost(ManaCost * cost, int anytypeofmana, MTGCardInstance * target,vector<MTGAbility*>gotPayments)
{ {
DebugTrace("AIPlayerBaka: AI attempting to pay a mana cost." << endl DebugTrace("AIPlayerBaka: AI attempting to pay a mana cost." << endl
<< "- Target: " << (target ? target->name : "None" ) << endl << "- Target: " << (target ? target->name : "None" ) << endl
<< "- Cost: " << (cost ? cost->toString() : "NULL") ); << "- Cost: " << (cost ? cost->toString() : "NULL") );
if (!cost) if (!cost)
{ {
@@ -1450,7 +1450,7 @@ bool AIPlayerBaka::payTheManaCost(ManaCost * cost, int anytypeofmana, MTGCardIns
} }
} }
if(k == gotPayments.size()-1)//only add it once, and at the end. if(k == gotPayments.size()-1)//only add it once, and at the end.
paid->add(this->getManaPool());//incase some of our payments were mana already in the pool/. paid->add(this->getManaPool());//incase some of our payments were mana already in the pool/.
if(paid->canAfford(cost, anytypeofmana)) if(paid->canAfford(cost, anytypeofmana))
{ {
if((!cost->hasX() && !cost->hasAnotherCost()) || k == gotPayments.size()-1) if((!cost->hasX() && !cost->hasAnotherCost()) || k == gotPayments.size()-1)
@@ -1575,7 +1575,7 @@ vector<MTGAbility*> AIPlayerBaka::canPayMana(MTGCardInstance * target, ManaCost
if(!cost || (cost && !cost->getConvertedCost()) || !target) if(!cost || (cost && !cost->getConvertedCost()) || !target)
return vector<MTGAbility*>(); return vector<MTGAbility*>();
map<MTGCardInstance*, bool> usedCards; map<MTGCardInstance*, bool> usedCards;
return canPayMana(target, cost, anytypeofmana, usedCards); return canPayMana(target, cost, anytypeofmana, usedCards);
} }
@@ -1857,7 +1857,7 @@ vector<MTGAbility*> AIPlayerBaka::canPaySunBurst(ManaCost * cost)
} }
} }
} }
for(int i = fullColor;i < cost->getConvertedCost();i++) for(int i = fullColor;i < cost->getConvertedCost();i++)
{ {
for (size_t i = 0; i < observer->mLayers->actionLayer()->manaObjects.size(); i++) for (size_t i = 0; i < observer->mLayers->actionLayer()->manaObjects.size(); i++)
@@ -1902,7 +1902,7 @@ int AIPlayerBaka::CanHandleCost(ManaCost * cost, MTGCardInstance * card)
{ {
ec->costs[i]->setSource(card); ec->costs[i]->setSource(card);
if(!ec->costs[i]->tc->countValidTargets()) if(!ec->costs[i]->tc->countValidTargets())
return 0; return 0;
if(!chooseCard(ec->costs[i]->tc,card)) if(!chooseCard(ec->costs[i]->tc,card))
return 0; return 0;
} }
@@ -1981,7 +1981,7 @@ int AIPlayerBaka::createAbilityTargets(MTGAbility * a, MTGCardInstance * c, Rank
MTGCardInstance * cTargeting = dynamic_cast<MTGCardInstance*>(potentialTargets[0]); MTGCardInstance * cTargeting = dynamic_cast<MTGCardInstance*>(potentialTargets[0]);
if(cTargeting) if(cTargeting)
check = NEW OrderedAIAction(this, a,c,cTargeting); check = NEW OrderedAIAction(this, a,c,cTargeting);
Player * pTargeting = dynamic_cast<Player*>(potentialTargets[0]); Player * pTargeting = dynamic_cast<Player*>(potentialTargets[0]);
if(pTargeting) if(pTargeting)
@@ -2084,17 +2084,17 @@ int AIPlayerBaka::selectAbility()
} }
} }
} }
// Try Deck hints first // Try Deck hints first
if (selectHintAbility()) if (selectHintAbility())
return 1; return 1;
if(observer->mLayers->stackLayer()->lastActionController == this) if(observer->mLayers->stackLayer()->lastActionController == this)
{ {
//this is here for 2 reasons, MTG rules state that priority is passed with each action. //this is here for 2 reasons, MTG rules state that priority is passed with each action.
//without this ai is able to chain cast {t}:damage:1 target(creature) from everything it can all at once. //without this ai is able to chain cast {t}:damage:1 target(creature) from everything it can all at once.
//this not only is illegal but cause ai to waste abilities ei:all damage:1 on a single 1/1 creature. //this not only is illegal but cause ai to waste abilities ei:all damage:1 on a single 1/1 creature.
return 1; return 1;
} }
RankingContainer ranking; RankingContainer ranking;
list<int>::iterator it; list<int>::iterator it;
@@ -2504,8 +2504,8 @@ int AIPlayerBaka::chooseTarget(TargetChooser * _tc, Player * forceTarget,MTGCard
{ {
if(observer->mExtraPayment) if(observer->mExtraPayment)
{ {
observer->mExtraPayment->action->CheckUserInput(JGE_BTN_SEC); observer->mExtraPayment->action->CheckUserInput(JGE_BTN_SEC);
observer->mExtraPayment = NULL; observer->mExtraPayment = NULL;
} }
//there should never be a case where a extra cost target selection is happening at the same time as this.. //there should never be a case where a extra cost target selection is happening at the same time as this..
//extracost uses "chooseCard()" to determine its targets. //extracost uses "chooseCard()" to determine its targets.
@@ -2522,7 +2522,7 @@ int AIPlayerBaka::chooseTarget(TargetChooser * _tc, Player * forceTarget,MTGCard
assert(tc); assert(tc);
if (comboHint && comboHint->cardTargets.size()) if (comboHint && comboHint->cardTargets.size())
{ {
tc = GetComboTc(observer,tc); tc = GetComboTc(observer,tc);
} }
if(!checkOnly && tc->maxtargets > 1) if(!checkOnly && tc->maxtargets > 1)
{ {
@@ -2619,7 +2619,7 @@ int AIPlayerBaka::chooseTarget(TargetChooser * _tc, Player * forceTarget,MTGCard
} }
} }
if(playerTargetedZone > 1) if(playerTargetedZone > 1)
target = target->opponent(); target = target->opponent();
playerTargetedZone--; playerTargetedZone--;
} }
if (potentialTargets.size()) if (potentialTargets.size())
@@ -2665,10 +2665,10 @@ int AIPlayerBaka::getEfficiency(MTGAbility * ability)
check = NEW OrderedAIAction(this, ability, pTarget, ability->source); check = NEW OrderedAIAction(this, ability, pTarget, ability->source);
else else
check = NEW OrderedAIAction(this, ability, ability->source); check = NEW OrderedAIAction(this, ability, ability->source);
if (!check) if (!check)
return -1; return -1;
int result = getEfficiency(check); int result = getEfficiency(check);
SAFE_DELETE(check); SAFE_DELETE(check);
return result; return result;
@@ -2757,8 +2757,8 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
payAlternative = NONE; payAlternative = NONE;
gotPayments = vector<MTGAbility*>(); gotPayments = vector<MTGAbility*>();
//canplayfromgraveyard //canplayfromgraveyard
while ((card = cd.nextmatch(game->graveyard, card))) while ((card = cd.nextmatch(game->graveyard, card)))
{ {
bool hasFlashback = false; bool hasFlashback = false;
if(card->getManaCost()) if(card->getManaCost())
@@ -2784,11 +2784,11 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
/*// Case were manacost is equal to flashback cost, if they are different the AI hangs /*// Case were manacost is equal to flashback cost, if they are different the AI hangs
if (hasFlashback && (card->getManaCost() != card->getManaCost()->getFlashback())) if (hasFlashback && (card->getManaCost() != card->getManaCost()->getFlashback()))
continue; continue;
// Case were manacost is equal to retrace cost, if they are different the AI hangs // Case were manacost is equal to retrace cost, if they are different the AI hangs
if (hasRetrace && (card->getManaCost() != card->getManaCost()->getRetrace())) if (hasRetrace && (card->getManaCost() != card->getManaCost()->getRetrace()))
continue;*/ continue;*/
if (card->hasType(Subtypes::TYPE_LAND)) if (card->hasType(Subtypes::TYPE_LAND))
{ {
@@ -2816,7 +2816,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if (card->hasType(Subtypes::TYPE_BATTLE) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_BATTLE,card->types[1])) if (card->hasType(Subtypes::TYPE_BATTLE) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_BATTLE,card->types[1]))
continue; continue;
if(hints && hints->HintSaysItsForCombo(observer,card)) if(hints && hints->HintSaysItsForCombo(observer,card))
{ {
if(hints->canWeCombo(observer,card,this)) if(hints->canWeCombo(observer,card,this))
@@ -2834,7 +2834,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
else else
{ {
nextCardToPlay = NULL; nextCardToPlay = NULL;
continue; continue;
} }
} }
int currentCost = card->getManaCost()->getConvertedCost(); int currentCost = card->getManaCost()->getConvertedCost();
@@ -2987,7 +2987,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if (card->hasType(Subtypes::TYPE_BATTLE) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_BATTLE,card->types[1])) if (card->hasType(Subtypes::TYPE_BATTLE) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_BATTLE,card->types[1]))
continue; continue;
if(hints && hints->HintSaysItsForCombo(observer,card)) if(hints && hints->HintSaysItsForCombo(observer,card))
{ {
if(hints->canWeCombo(observer,card,this)) if(hints->canWeCombo(observer,card,this))
@@ -3005,7 +3005,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
else else
{ {
nextCardToPlay = NULL; nextCardToPlay = NULL;
continue; continue;
} }
} }
int currentCost = card->getManaCost()->getConvertedCost(); int currentCost = card->getManaCost()->getConvertedCost();
@@ -3013,7 +3013,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
gotPayments.clear(); gotPayments.clear();
if((!pMana->canAfford(card->getManaCost(),0) || card->getManaCost()->getKicker())) if((!pMana->canAfford(card->getManaCost(),0) || card->getManaCost()->getKicker()))
gotPayments = canPayMana(card,card->getManaCost(),card->has(Constants::ANYTYPEOFMANA)); gotPayments = canPayMana(card,card->getManaCost(),card->has(Constants::ANYTYPEOFMANA));
//for preformence reason we only look for specific mana if the payment couldn't be made with pmana. //for preformence reason we only look for specific mana if the payment couldn't be made with pmana.
if ((currentCost > maxCost || hasX) && (gotPayments.size() || pMana->canAfford(card->getManaCost(),card->has(Constants::ANYTYPEOFMANA)))) if ((currentCost > maxCost || hasX) && (gotPayments.size() || pMana->canAfford(card->getManaCost(),card->has(Constants::ANYTYPEOFMANA))))
{ {
TargetChooserFactory tcf(observer); TargetChooserFactory tcf(observer);
@@ -3122,10 +3122,10 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if (game->playRestrictions->canPutIntoZone(card, game->stack) == PlayRestriction::CANT_PLAY) if (game->playRestrictions->canPutIntoZone(card, game->stack) == PlayRestriction::CANT_PLAY)
continue; continue;
if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name)) if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name))
continue; continue;
if(hints && hints->HintSaysItsForCombo(observer,card)) if(hints && hints->HintSaysItsForCombo(observer,card))
{ {
if(hints->canWeCombo(observer,card,this)) if(hints->canWeCombo(observer,card,this))
@@ -3143,7 +3143,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
else else
{ {
nextCardToPlay = NULL; nextCardToPlay = NULL;
continue; continue;
} }
} }
int currentCost = card->getManaCost()->getConvertedCost(); int currentCost = card->getManaCost()->getConvertedCost();
@@ -3151,7 +3151,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
gotPayments.clear(); gotPayments.clear();
if((!pMana->canAfford(card->getManaCost(),0) || card->getManaCost()->getKicker())) if((!pMana->canAfford(card->getManaCost(),0) || card->getManaCost()->getKicker()))
gotPayments = canPayMana(card,card->getManaCost(),card->has(Constants::ANYTYPEOFMANA)); gotPayments = canPayMana(card,card->getManaCost(),card->has(Constants::ANYTYPEOFMANA));
//for preformence reason we only look for specific mana if the payment couldn't be made with pmana. //for preformence reason we only look for specific mana if the payment couldn't be made with pmana.
if ((currentCost > maxCost || hasX) && (gotPayments.size() || pMana->canAfford(card->getManaCost(),card->has(Constants::ANYTYPEOFMANA)))) if ((currentCost > maxCost || hasX) && (gotPayments.size() || pMana->canAfford(card->getManaCost(),card->has(Constants::ANYTYPEOFMANA))))
{ {
TargetChooserFactory tcf(observer); TargetChooserFactory tcf(observer);
@@ -3275,8 +3275,8 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
//PLaneswalkers are now legendary so this is redundant //PLaneswalkers are now legendary so this is redundant
//if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1])) //if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1]))
//continue; //continue;
if(hints && hints->HintSaysItsForCombo(observer,card)) if(hints && hints->HintSaysItsForCombo(observer,card))
{ {
if(hints->canWeCombo(observer,card,this)) if(hints->canWeCombo(observer,card,this))
@@ -3294,7 +3294,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
else else
{ {
nextCardToPlay = NULL; nextCardToPlay = NULL;
continue; continue;
} }
} }
int currentCost = card->getManaCost()->getConvertedCost(); int currentCost = card->getManaCost()->getConvertedCost();
@@ -3487,7 +3487,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if(hints && hints->HintSaysItsForCombo(observer,nextCardToPlay)) if(hints && hints->HintSaysItsForCombo(observer,nextCardToPlay))
{ {
DebugTrace(" AI wants to play a card that belongs to a combo."); DebugTrace(" AI wants to play a card that belongs to a combo.");
nextCardToPlay = NULL; nextCardToPlay = NULL;
} }
} }
@@ -3521,7 +3521,7 @@ MTGCardInstance * AIPlayerBaka::activateCombo()
if(comboCards.size()) if(comboCards.size())
{ {
nextCardToPlay = comboCards.back(); nextCardToPlay = comboCards.back();
DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); DebugTrace("ai is doing a combo:" << nextCardToPlay->getName());
DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); DebugTrace("ai is doing a combo:" << nextCardToPlay->getName());
DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); DebugTrace("ai is doing a combo:" << nextCardToPlay->getName());
@@ -3574,7 +3574,7 @@ int AIPlayerBaka::computeActions()
if(doThis >= 0) if(doThis >= 0)
{ {
if(object->abilitiesMenu->isMultipleChoice) if(object->abilitiesMenu->isMultipleChoice)
observer->mLayers->actionLayer()->ButtonPressedOnMultipleChoice(doThis); observer->mLayers->actionLayer()->ButtonPressedOnMultipleChoice(doThis);
else else
observer->mLayers->actionLayer()->doReactTo(doThis); observer->mLayers->actionLayer()->doReactTo(doThis);
} }
@@ -3985,16 +3985,16 @@ int AIPlayerBaka::getCreaturesInfo(Player * player, int neededInfo, int untapMod
int AIPlayerBaka::chooseAttackers() int AIPlayerBaka::chooseAttackers()
{ {
int myCreatures = getCreaturesInfo(this, INFO_NBCREATURES, -1, 1); int myCreatures = getCreaturesInfo(this, INFO_NBCREATURES, -1, 1);
if (myCreatures < 1) if (myCreatures < 1)
return 0; return 0;
//Attack with all creatures //Attack with all creatures
//How much damage can the other player do during his next Attack ? //How much damage can the other player do during his next Attack ?
int opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER); int opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER);
int opponentCreatures = getCreaturesInfo(opponent(), INFO_NBCREATURES); int opponentCreatures = getCreaturesInfo(opponent(), INFO_NBCREATURES);
int myForce = getCreaturesInfo(this, INFO_CREATURESPOWER, -1, 1); int myForce = getCreaturesInfo(this, INFO_CREATURESPOWER, -1, 1);
if(opponent()->life < 5) if(opponent()->life < 5)
agressivity += 31; agressivity += 31;
bool attack = ((myCreatures > opponentCreatures) || (myForce > opponentForce) || (myForce > 2 * opponent()->life)); bool attack = ((myCreatures > opponentCreatures) || (myForce > opponentForce) || (myForce > 2 * opponent()->life));
if (agressivity > 80 && !attack && life > opponentForce) if (agressivity > 80 && !attack && life > opponentForce)
@@ -4002,7 +4002,7 @@ int AIPlayerBaka::chooseAttackers()
opponentCreatures = getCreaturesInfo(opponent(), INFO_NBCREATURES, -1); opponentCreatures = getCreaturesInfo(opponent(), INFO_NBCREATURES, -1);
opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER, -1); opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER, -1);
attack = (myCreatures >= opponentCreatures && myForce > opponentForce) attack = (myCreatures >= opponentCreatures && myForce > opponentForce)
|| (myForce > opponentForce) || (myForce > opponent()->life) || ((life - opponentForce) > 30) ; || (myForce > opponentForce) || (myForce > opponent()->life) || ((life - opponentForce) > 30) ;
} }
printf("Choose attackers : %i %i %i %i -> %i\n", opponentForce, opponentCreatures, myForce, myCreatures, attack); printf("Choose attackers : %i %i %i %i -> %i\n", opponentForce, opponentCreatures, myForce, myCreatures, attack);
@@ -4012,16 +4012,13 @@ int AIPlayerBaka::chooseAttackers()
MTGCardInstance * card = NULL; MTGCardInstance * card = NULL;
while ((card = cd.nextmatch(game->inPlay, card))) while ((card = cd.nextmatch(game->inPlay, card)))
{ {
if ((hints && hints->HintSaysAlwaysAttack(observer, card)) || card->has(Constants::UNBLOCKABLE)) if (shouldAIForceAttack(card, attack))
{ {
if (!card->isAttacker()) if (card->attackCost)
{ {
if (card->attackCost) MTGAbility* a = observer->mLayers->actionLayer()->getAbility(MTGAbility::ATTACK_COST);
{ doAbility(a, card);
MTGAbility * a = observer->mLayers->actionLayer()->getAbility(MTGAbility::ATTACK_COST); observer->cardClick(card, MTGAbility::ATTACK_COST);
doAbility(a,card);
observer->cardClick(card, MTGAbility::ATTACK_COST);
}
} }
observer->cardClick(card, MTGAbility::MTG_ATTACK_RULE); observer->cardClick(card, MTGAbility::MTG_ATTACK_RULE);
} }
@@ -4052,6 +4049,76 @@ int AIPlayerBaka::chooseAttackers()
return 1; return 1;
} }
bool AIPlayerBaka::shouldAIForceAttack(MTGCardInstance* card, bool globalAttack)
{
if (globalAttack)
return true;
if (!card || card->isAttacker())
return false;
if (hints)
{
if (hints->HintSaysDontAttack(observer, card))
return false;
if (hints->HintSaysAlwaysAttack(observer, card))
return true;
}
if (card->has(Constants::UNBLOCKABLE))
return true;
// Flags for opponent defenses
bool oppHasShadow = false;
bool oppHasAirDefense = false;
bool oppHasHorsemanship = false;
bool oppHasBlackOrArtifact = false;
bool oppHasMatchingColorOrArtifact = false;
MTGCardInstance* oppCard = NULL;
CardDescriptor desc;
desc.init();
desc.setType("creature");
while ((oppCard = desc.nextmatch(opponent()->game->inPlay, oppCard)))
{
if (oppCard->isTapped())
continue;
if (oppCard->has(Constants::SHADOW))
oppHasShadow = true;
if (oppCard->has(Constants::FLYING) || oppCard->has(Constants::REACH))
oppHasAirDefense = true;
if (oppCard->has(Constants::HORSEMANSHIP))
oppHasHorsemanship = true;
if (oppCard->hasColor(Constants::MTG_COLOR_BLACK) || oppCard->hasType("Artifact"))
oppHasBlackOrArtifact = true;
// Intimidate check: artifact or shares color
if (oppCard->hasType("Artifact") || (oppCard->colors & card->colors))
oppHasMatchingColorOrArtifact = true;
}
// Decision logic based on evasion
if ((card->has(Constants::SHADOW) && !oppHasShadow) ||
(card->has(Constants::FLYING) && !oppHasAirDefense) ||
(card->has(Constants::HORSEMANSHIP) && !oppHasHorsemanship) ||
(card->has(Constants::FEAR) && !oppHasBlackOrArtifact) ||
(card->has(Constants::INTIMIDATE) && !oppHasMatchingColorOrArtifact))
return true;
// Landwalk abilities
if ((card->has(Constants::SWAMPWALK) && opponent()->game->inPlay->hasType("Swamp")) ||
(card->has(Constants::ISLANDWALK) && opponent()->game->inPlay->hasType("Island")) ||
(card->has(Constants::FORESTWALK) && opponent()->game->inPlay->hasType("Forest")) ||
(card->has(Constants::MOUNTAINWALK) && opponent()->game->inPlay->hasType("Mountain")) ||
(card->has(Constants::PLAINSWALK) && opponent()->game->inPlay->hasType("Plains")))
return true;
return false;
}
/* Can I first strike my oponent and get away with murder ? */ /* Can I first strike my oponent and get away with murder ? */
int AIPlayerBaka::canFirstStrikeKill(MTGCardInstance * card, MTGCardInstance *ennemy) int AIPlayerBaka::canFirstStrikeKill(MTGCardInstance * card, MTGCardInstance *ennemy)
{ {
@@ -4073,14 +4140,16 @@ 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;
int opponentForce = getCreaturesInfo(opponent(), INFO_CREATURESPOWER); map<MTGCardInstance*, int> opponentsToughness;
//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())
@@ -4094,11 +4163,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)
@@ -4109,8 +4179,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;
@@ -4125,7 +4195,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);
} }
@@ -4135,13 +4205,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)
@@ -4151,53 +4221,156 @@ 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;
std::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();
int currentBlockPower = 0;
std::list<MTGCardInstance*>::iterator itb;
for (itb = bestAttacker->blockers.begin(); itb != bestAttacker->blockers.end(); ++itb)
{
MTGCardInstance* blocker = *itb;
if (blocker)
currentBlockPower += blocker->power;
}
if (currentBlockers >= requiredBlockers || currentBlockPower >= bestAttacker->toughness)
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;
} }
} }
} }
} }
return 1; return 1;
} }
@@ -4269,7 +4442,7 @@ int AIPlayerBaka::receiveEvent(WEvent * event)
AIPlayerBaka::AIPlayerBaka(GameObserver *observer, string file, string fileSmall, string avatarFile, MTGDeck * deck) : AIPlayerBaka::AIPlayerBaka(GameObserver *observer, string file, string fileSmall, string avatarFile, MTGDeck * deck) :
AIPlayer(observer, file, fileSmall, deck) AIPlayer(observer, file, fileSmall, deck)
{ {
nextCardToPlay = NULL; nextCardToPlay = NULL;
@@ -4312,7 +4485,7 @@ AIPlayerBaka::AIPlayerBaka(GameObserver *observer, string file, string fileSmall
if (fileSmall == "ai_baka_eviltwin") if (fileSmall == "ai_baka_eviltwin")
mAvatar->SetHFlip(true); mAvatar->SetHFlip(true);
initTimer(); initTimer();
} }
@@ -4379,17 +4552,17 @@ int AIPlayerBaka::Act(float dt)
else else
{ {
if (observer->currentActionPlayer == this)//if im not the action player why would i requestnextphase? if (observer->currentActionPlayer == this)//if im not the action player why would i requestnextphase?
observer->userRequestNextGamePhase(); observer->userRequestNextGamePhase();
} }
} }
else else
{ {
while(clickstream.size()) while(clickstream.size())
{ {
AIAction * action = clickstream.front(); AIAction * action = clickstream.front();
action->Act(); action->Act();
SAFE_DELETE(action); SAFE_DELETE(action);
clickstream.pop(); clickstream.pop();
} }
} }
return 1; return 1;

Some files were not shown because too many files have changed in this diff Show More