@@ -37416,7 +37416,7 @@ subtype=Aura
|
||||
[card]
|
||||
name=Fury Charm
|
||||
auto=may destroy target(artifact)
|
||||
auto=may 1/1 && trample target(creature)
|
||||
auto=may name(1/1 & trample) target(creature) transforms((,newability[1/1],newability[trample])) ueot
|
||||
auto=may counter(0/0,-2,Time) target(*)
|
||||
text=Choose one - Destroy target artifact; or target creature gets +1/+1 and gains trample until end of turn; or remove two time counters from target permanent or suspended card.
|
||||
mana={1}{R}
|
||||
@@ -79332,6 +79332,7 @@ auto=this(variable{plandu}>0) {t}:add{u}
|
||||
auto=this(variable{plandr}>0) {t}:add{r}
|
||||
auto=this(variable{plandb}>0) {t}:add{b}
|
||||
auto=this(variable{plandw}>0) {t}:add{w}
|
||||
auto=this(variable{plandc}>0) {t}:add{1}
|
||||
text={T}: Add to your mana pool one mana of any type that a land you control could produce.
|
||||
type=Land
|
||||
[/card]
|
||||
@@ -86780,7 +86781,7 @@ type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Selesnya Charm
|
||||
auto=choice target(creature) 2/2 && trample ueot
|
||||
auto=choice name(2/2 & trample) target(creature) transforms((,newability[2/2],newability[trample])) ueot
|
||||
auto=choice moveTo(exile) target(creature[power>=5])
|
||||
auto=choice token(Knight,Creature Knight,2/2,white,vigilance)
|
||||
text=Choose one — Target creature gets +2/+2 and gains trample until end of turn; or exile target creature with power 5 or greater; or put a 2/2 white Knight creature token with vigilance onto the battlefield.
|
||||
@@ -110430,7 +110431,7 @@ toughness=1
|
||||
[card]
|
||||
name=Vitality Charm
|
||||
auto=choice token(Insect,creature insect, 1/1,green)
|
||||
auto=aslongas(creature|battlefield) choice 1/1 && trample target(creature)
|
||||
auto=aslongas(creature|battlefield) choice name(1/1 & trample) target(creature) transforms((,newability[1/1],newability[trample])) ueot
|
||||
auto=aslongas(beast|battlefield) choice regenerate target(beast)
|
||||
text=Choose one - Put a 1/1 green Insect creature token onto the battlefield; or target creature gets +1/+1 and gains trample until end of turn; or regenerate target Beast.
|
||||
mana={G}
|
||||
|
||||
37
projects/mtg/bin/Res/test/Replenish.txt
Normal file
37
projects/mtg/bin/Res/test/Replenish.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
#Put in play Fists of Ironwood via Replenish
|
||||
[INIT]
|
||||
FIRSTMAIN
|
||||
[PLAYER1]
|
||||
life:20
|
||||
hand:Replenish, 4683, Replenish
|
||||
graveyard:83672, Mass Hysteria
|
||||
inplay:Swamp, Forest, Island, Mountain, Plains
|
||||
manapool:{3}{W}
|
||||
[PLAYER2]
|
||||
life:20
|
||||
[DO]
|
||||
Replenish
|
||||
#Fists of Ironwood remains on graveyard since there are no valid targets
|
||||
Swamp
|
||||
4683
|
||||
Forest
|
||||
Island
|
||||
Plains
|
||||
Mountain
|
||||
Replenish
|
||||
#Fists of Ironwood attach on Zombie Token created by Sarcomancy, Then produces 2 Saproling Tokens
|
||||
-4683
|
||||
next
|
||||
next
|
||||
-83672
|
||||
-4683
|
||||
eot
|
||||
[ASSERT]
|
||||
UNTAP
|
||||
[PLAYER1]
|
||||
graveyard:Replenish, Replenish
|
||||
inplay:Sarcomancy, Mass Hysteria, Swamp, Forest, Island, Mountain, Plains, -4683, -83672, -83672, 83672
|
||||
life:20
|
||||
[PLAYER2]
|
||||
life:17
|
||||
[END]
|
||||
23
projects/mtg/bin/Res/test/Show_and_Tell.txt
Normal file
23
projects/mtg/bin/Res/test/Show_and_Tell.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
#Put in play Fists of Ironwood via Show and Tell
|
||||
[INIT]
|
||||
FIRSTMAIN
|
||||
[PLAYER1]
|
||||
life:20
|
||||
hand:Show and Tell, Fists of Ironwood
|
||||
manapool:{2}{U}
|
||||
[PLAYER2]
|
||||
life:20
|
||||
[DO]
|
||||
Show and Tell
|
||||
choice 0
|
||||
Fists of Ironwood
|
||||
eot
|
||||
[ASSERT]
|
||||
UNTAP
|
||||
[PLAYER1]
|
||||
graveyard:Show and Tell
|
||||
hand:Fists of Ironwood
|
||||
life:20
|
||||
[PLAYER2]
|
||||
life:20
|
||||
[END]
|
||||
@@ -577,6 +577,7 @@ regal_force.txt
|
||||
reinforcements_1.txt
|
||||
Rending_Vines.txt
|
||||
Rending_Vines2.txt
|
||||
Replenish.txt
|
||||
resounding_roar.txt
|
||||
resurrection.txt
|
||||
resuscitate_i210.txt
|
||||
@@ -623,6 +624,7 @@ shimmer_myr_FORCEDALIVE.txt
|
||||
shivan_hellkite.txt
|
||||
shock.txt
|
||||
shock2.txt
|
||||
Show_and_Tell.txt
|
||||
siege_gang_commander.txt
|
||||
simic_initiate.txt
|
||||
slate_of_ancestry.txt
|
||||
|
||||
@@ -584,6 +584,11 @@ private:
|
||||
{
|
||||
intValue = countManaProducedby(Constants::MTG_COLOR_WHITE, target, target->controller()->opponent());
|
||||
}
|
||||
else if (s == "olandc")
|
||||
{
|
||||
intValue = countManaProducedby(Constants::MTG_COLOR_ARTIFACT, target, target->controller()->opponent()) +
|
||||
countManaProducedby(Constants::MTG_COLOR_WASTE, target, target->controller()->opponent());
|
||||
}
|
||||
else if (s == "plandg")
|
||||
{
|
||||
intValue = countManaProducedby(Constants::MTG_COLOR_GREEN, target, target->controller());
|
||||
@@ -604,6 +609,11 @@ private:
|
||||
{
|
||||
intValue = countManaProducedby(Constants::MTG_COLOR_WHITE, target, target->controller());
|
||||
}
|
||||
else if (s == "plandc")
|
||||
{
|
||||
intValue = countManaProducedby(Constants::MTG_COLOR_ARTIFACT, target, target->controller()) +
|
||||
countManaProducedby(Constants::MTG_COLOR_WASTE, target, target->controller());
|
||||
}
|
||||
else if (s == "cantargetmycre")// can target my creature
|
||||
{
|
||||
intValue = countCanTargetby("creature", card, card->controller());
|
||||
|
||||
@@ -3010,7 +3010,7 @@ int AAMover::resolve()
|
||||
//inplay is a special zone !
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (destZone == game->players[i]->game->inPlay && fromZone != game->players[i]->game->inPlay && fromZone
|
||||
if (!_target->hasSubtype(Subtypes::TYPE_AURA) && destZone == game->players[i]->game->inPlay && fromZone != game->players[i]->game->inPlay && fromZone
|
||||
!= game->players[i]->opponent()->game->inPlay)
|
||||
{
|
||||
MTGCardInstance * copy = game->players[i]->game->putInZone(_target, fromZone, game->players[i]->game->temp);
|
||||
@@ -3038,6 +3038,29 @@ int AAMover::resolve()
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if(_target->hasSubtype(Subtypes::TYPE_AURA) && (destZone == game->players[0]->game->inPlay || destZone == game->players[1]->game->inPlay))
|
||||
{//put into play aura if there is no valid targets then it will be in its current zone
|
||||
MTGAbility *a = NEW AACastCard(game, game->mLayers->actionLayer()->getMaxId(), _target, _target,false,false,false,"","Put in play",false,true);
|
||||
a->oneShot = false;
|
||||
a->canBeInterrupted = false;
|
||||
a->addToGame();
|
||||
if(andAbility && _target->next)
|
||||
{//if successful target->next should be valid
|
||||
MTGAbility * andAbilityClone = andAbility->clone();
|
||||
andAbilityClone->target = _target->next;
|
||||
if(andAbility->oneShot)
|
||||
{
|
||||
andAbilityClone->resolve();
|
||||
SAFE_DELETE(andAbilityClone);
|
||||
}
|
||||
else
|
||||
{
|
||||
andAbilityClone->addToGame();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
p->game->putInZone(_target, fromZone, destZone);
|
||||
while(_target->next)
|
||||
_target = _target->next;
|
||||
@@ -3055,6 +3078,7 @@ int AAMover::resolve()
|
||||
andAbilityClone->addToGame();
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user