adds support for darksteel colossus, gravebane zombie

This commit is contained in:
Anthony Calosa
2015-09-04 16:47:11 +08:00
parent 5175f439a0
commit 11a9766ba0
5 changed files with 61 additions and 42 deletions

View File

@@ -9371,8 +9371,7 @@ toughness=1
[/card]
[card]
name=Blightsteel Colossus
abilities=trample,indestructible,infect
autograveyard=moveTo(ownerlibrary) && shuffle
abilities=trample,indestructible,infect,shufflelibrarydeath
text=Trample,infect -- Blightsteel Colossus is indestructible. -- If Blightsteel Colossus would be put into a graveyard from anywhere, reveal Blightsteel Colossus and shuffle it into its owner's library instead.
mana={12}
type=Artifact Creature
@@ -21047,8 +21046,7 @@ type=Artifact Land
[/card]
[card]
name=Darksteel Colossus
abilities=trample,indestructible
autograveyard=moveTo(ownerlibrary) && shuffle
abilities=trample,indestructible,shufflelibrarydeath
text=Trample -- Darksteel Colossus is indestructible. -- If Darksteel Colossus would be put into a graveyard from anywhere, reveal Darksteel Colossus and shuffle it into its owner's library instead.
mana={11}
type=Artifact Creature
@@ -34460,6 +34458,14 @@ mana={1}{U}{U}
type=Instant
[/card]
[card]
name=Forbidden Crypt
abilities=mygraveexiler
auto=replacedraw if type(*|mygraveyard)~morethan~0 then moveto(ownerhand) notatarget(*|mygraveyard) else wingame opponent
text=If you would draw a card, return a card from your graveyard to your hand instead. If you can't, you lose the game. -- If a card would be put into your graveyard from anywhere, exile that card instead.
mana={3}{B}{B}
type=Enchantment
[/card]
[card]
name=Forbidden Lore
target=land
auto=teach(land) {T}:2/1 target(creature)
@@ -40038,6 +40044,16 @@ power=6
toughness=6
[/card]
[card]
name=Gravebane Zombie
abilities=librarydeath
text=If Gravebane Zombie would be put into a graveyard from the battlefield, put Gravebane Zombie on top of its owner's library instead.
mana={3}{B}
type=Creature
subtype=Zombie
power=3
toughness=2
[/card]
[card]
name=Gravebind
target=creature
auto=cantregen
@@ -53686,8 +53702,8 @@ toughness=2
[/card]
[card]
name=Legacy Weapon
abilities=shufflelibrarydeath
auto={w}{R}{G}{B}{U}:moveto(exile) target(*|battlefield)
autograveyard=moveTo(ownerlibrary) && shuffle
text={w}{R}{G}{B}{U}:Exile target permanent. -- If Legacy Weapon would be put into a graveyard from anywhere, reveal Legacy Weapon and shuffle it into its owner's library instead.
type=Legendary Artifact
mana={7}
@@ -53995,12 +54011,10 @@ abilities=leyline
[/card]
[card]
name=Leyline of the Void
#need to have opponentOwn attribute like auto=lord(*[opponentOwn]) transforms((,newability[exiledeath]))
auto=@movedTo(*|opponentGraveyard):all(trigger[to]) moveTo(exile)
abilities=leyline,oppgraveexiler
text=If Leyline of the Void is in your opening hand, you may begin the game with it on the battlefield. -- If a card would be put into an opponent's graveyard from anywhere, exile it instead.
mana={2}{B}{B}
type=Enchantment
abilities=leyline
[/card]
[card]
name=Leyline Phantom
@@ -72202,8 +72216,8 @@ type=Sorcery
[/card]
[card]
name=Progenitus
abilities=shufflelibrarydeath
auto=protection from(*)
autograveyard=moveTo(ownerlibrary) && shuffle
text=Protection from everything -- If Progenitus would be put into a graveyard from anywhere, reveal Progenitus and shuffle it into its owner's library instead.
mana={W}{W}{U}{U}{B}{B}{R}{R}{G}{G}
type=Legendary Creature
@@ -72584,7 +72598,7 @@ subtype=Arcane
[card]
name=Pulmonic Sliver
auto=lord(sliver) flying
auto=lord(sliver) transforms((,newability[@movedTo(this|graveyard) from(battlefield):all(trigger[to]) moveTo(ownerlibrary)]))
auto=lord(sliver) transforms((,newability[librarydeath]))
text=All Sliver creatures have flying. -- All Slivers have "If this permanent would be put into a graveyard, you may put it on top of its owner's library instead."
mana={3}{W}{W}
type=Creature
@@ -76497,6 +76511,14 @@ mana={1}{W}
type=Instant
[/card]
[card]
name=Rest in Peace
abilities=mygraveexiler,oppgraveexiler
auto=moveto(exile) all(*|graveyard)
text=When Rest in Peace enters the battlefield, exile all cards from all graveyards. -- If a card or token would be put into a graveyard from anywhere, exile it instead.
mana={1}{W}
type=Enchantment
[/card]
[card]
name=Restless Apparition
abilities=persist
auto={WB}{WB}{WB}:3/3
@@ -111046,6 +111068,15 @@ power=6
toughness=6
[/card]
[card]
name=Yawgmoth's Agenda
abilities=mygraveexiler
auto=lord(*|mygraveyard) canPlayFromGraveyard
auto=maxCast(*)1
text=You can't cast more than one spell each turn. -- You may play cards from your graveyard. -- If a card would be put into your graveyard from anywhere, exile it instead.
mana={3}{B}{B}
type=Enchantment
[/card]
[card]
name=Yawgmoth's Bargain
auto=phasealter(remove,draw,controller)
auto={L}:draw:1 controller

View File

@@ -5428,12 +5428,6 @@ mana={2}{G}
type=Enchantment
[/card]
[card]
name=Forbidden Crypt
text=If you would draw a card, return a card from your graveyard to your hand instead. If you can't, you lose the game. -- If a card would be put into your graveyard from anywhere, exile that card instead.
mana={3}{B}{B}
type=Enchantment
[/card]
[card]
name=Forbidden Ritual
text=Sacrifice a nontoken permanent. If you do, target opponent loses 2 life unless he or she sacrifices a permanent or discards a card. You may repeat this process any number of times.
mana={2}{B}{B}
@@ -6598,15 +6592,6 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Gravebane Zombie
text=If Gravebane Zombie would be put into a graveyard from the battlefield, put Gravebane Zombie on top of its owner's library instead.
mana={3}{B}
type=Creature
subtype=Zombie
power=3
toughness=2
[/card]
[card]
name=Graven Dominator
text=Flying -- Haunt (When this card is put into a graveyard from the battlefield, exile it haunting target creature.) -- When Graven Dominator enters the battlefield or the creature it haunts is put into a graveyard, each other creature becomes 1/1 until end of turn.
mana={4}{W}{W}
@@ -13271,15 +13256,6 @@ mana={1}{U}
type=Sorcery
[/card]
[card]
name=Rest in Peace
#Note this is replacement effect, I think wagic has no override rule.
auto=moveto(exile) all(*|graveyard)
auto=@movedTo(*|graveyard):all(trigger[to]) moveTo(exile)
text=When Rest in Peace enters the battlefield, exile all cards from all graveyards. -- If a card or token would be put into a graveyard from anywhere, exile it instead.
mana={1}{W}
type=Enchantment
[/card]
[card]
name=Restless Dreams
text=As an additional cost to cast Restless Dreams, discard X cards. -- Return X target creature cards from your graveyard to your hand.
mana={B}
@@ -18954,12 +18930,6 @@ mana={2}{W}
type=Instant
[/card]
[card]
name=Yawgmoth's Agenda
text=You can't cast more than one spell each turn. -- You may play cards from your graveyard. -- If a card would be put into your graveyard from anywhere, exile it instead.
mana={3}{B}{B}
type=Enchantment
[/card]
[card]
name=Ydwen Efreet
text=Whenever Ydwen Efreet blocks, flip a coin. If you lose the flip, remove Ydwen Efreet from combat and it can't block this turn. Creatures it was blocking that had become blocked by only Ydwen Efreet this combat become unblocked.
mana={R}{R}{R}

View File

@@ -222,7 +222,9 @@ class Constants
TOKENIZER = 104,
MYGRAVEEXILER = 105,
OPPGRAVEEXILER = 106,
NB_BASIC_ABILITIES = 107,
LIBRARYDEATH = 107,
SHUFFLELIBRARYDEATH = 108,
NB_BASIC_ABILITIES = 109,
RARITY_S = 'S', //Special Rarity

View File

@@ -135,7 +135,9 @@ const char* Constants::MTGBasicAbilities[] = {
"canplayfromgraveyard",
"tokenizer",//parallel lives,
"mygraveexiler",
"oppgraveexiler"
"oppgraveexiler",
"librarydeath",
"shufflelibrarydeath"
};
map<string,int> Constants::MTGBasicAbilitiesMap;

View File

@@ -321,6 +321,17 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
return card; //Error check
int doCopy = 1;
bool shufflelibrary = card->basicAbilities[(int)Constants::SHUFFLELIBRARYDEATH];
//Darksteel Colossus, Legacy Weapon ... top priority since we replace destination directly automatically...
for(int i = 0; i < 2; ++i)
{
if ((to == g->players[i]->game->graveyard) && (
card->basicAbilities[(int)Constants::LIBRARYDEATH]||
card->basicAbilities[(int)Constants::SHUFFLELIBRARYDEATH]))
{
to = g->players[i]->game->library;
}
}
//Leyline of the Void, Yawgmoth's Agenda... effect...
for(int i = 0; i < 2; ++i)
{
@@ -392,6 +403,9 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
}
if(!asCopy)
{
if(shufflelibrary)
copy->owner->game->library->shuffle();
WEvent * e = NEW WEventZoneChange(copy, from, to);
g->receiveEvent(e);
}