revised "steal" ability
steal - gain control of target/s until it leaves battlefield or its current controller loses control of the "stealer"...
This commit is contained in:
@@ -232,15 +232,6 @@ power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Orcish Squatters
|
||||
text=Whenever Orcish Squatters attacks and isn't blocked, you may gain control of target land defending player controls for as long as you control Orcish Squatters. If you do, Orcish Squatters assigns no combat damage this turn.
|
||||
mana={4}{R}
|
||||
type=Creature
|
||||
subtype=Orc
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Pentagram of the Ages
|
||||
text={4}, {T}: The next time a source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={4}
|
||||
|
||||
@@ -44,15 +44,6 @@ power=8
|
||||
toughness=8
|
||||
[/card]
|
||||
[card]
|
||||
name=Dragonlord Silumgar
|
||||
text=Flying, deathtouch -- When Dragonlord Silumgar enters the battlefield, gain control of target creature or planeswalker for as long as you control Dragonlord Silumgar.
|
||||
mana={4}{U}{B}
|
||||
type=Legendary Creature
|
||||
subtype=Elder Dragon
|
||||
power=3
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Dragonlord's Prerogative
|
||||
text=As an additional cost to cast Dragonlord's Prerogative, you may reveal a Dragon card from your hand. -- If you revealed a Dragon card or controlled a Dragon as you cast Dragonlord's Prerogative, Dragonlord's Prerogative can't be countered. -- Draw four cards.
|
||||
mana={4}{U}{U}
|
||||
|
||||
@@ -81,15 +81,6 @@ mana={B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Thrull Champion
|
||||
text=Thrull creatures get +1/+1. -- {T}: Gain control of target Thrull for as long as you control Thrull Champion.
|
||||
mana={4}{B}
|
||||
type=Creature
|
||||
subtype=Thrull
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Tidal Flats
|
||||
text={U}{U}: For each attacking creature without flying, its controller may pay {1}. If he or she doesn't, creatures you control blocking that creature gain first strike until end of turn.
|
||||
mana={U}
|
||||
|
||||
@@ -491,15 +491,6 @@ power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Orcish Squatters
|
||||
text=Whenever Orcish Squatters attacks and isn't blocked, you may gain control of target land defending player controls for as long as you control Orcish Squatters. If you do, Orcish Squatters assigns no combat damage this turn.
|
||||
mana={4}{R}
|
||||
type=Creature
|
||||
subtype=Orc
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Pentagram of the Ages
|
||||
text={4}, {T}: The next time a source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={4}
|
||||
|
||||
@@ -68,15 +68,6 @@ power=6
|
||||
toughness=6
|
||||
[/card]
|
||||
[card]
|
||||
name=Master Thief
|
||||
text=When Master Thief enters the battlefield, gain control of target artifact for as long as you control Master Thief.
|
||||
mana={2}{U}{U}
|
||||
type=Creature
|
||||
subtype=Human Rogue
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Monomania
|
||||
text=Target player chooses a card in his or her hand and discards the rest.
|
||||
mana={3}{B}{B}
|
||||
|
||||
@@ -124,15 +124,6 @@ mana={R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Roil Elemental
|
||||
text=Flying -- Landfall — Whenever a land enters the battlefield under your control, you may gain control of target creature for as long as you control Roil Elemental.
|
||||
mana={3}{U}{U}{U}
|
||||
type=Creature
|
||||
subtype=Elemental
|
||||
power=3
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Sorin Markov
|
||||
text=+2: Sorin Markov deals 2 damage to target creature or player and you gain 2 life. -- -3: Target opponent's life total becomes 10. -- -7: You control target player during that player's next turn.
|
||||
mana={3}{B}{B}{B}
|
||||
|
||||
@@ -29970,6 +29970,17 @@ power=5
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Dragonlord Silumgar
|
||||
abilities=flying,deathtouch
|
||||
auto=steal target(*[creature;planeswalker])
|
||||
text=Flying, deathtouch -- When Dragonlord Silumgar enters the battlefield, gain control of target creature or planeswalker for as long as you control Dragonlord Silumgar.
|
||||
mana={4}{U}{B}
|
||||
type=Legendary Creature
|
||||
subtype=Elder Dragon
|
||||
power=3
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Dragonlord's Servant
|
||||
auto=lord(dragon|mycastingzone) altercost(colorless, -1)
|
||||
text=Dragon spells you cast cost {1} less to cast.
|
||||
@@ -69088,6 +69099,16 @@ mana={3}{U}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Master Thief
|
||||
auto=steal target(artifact)
|
||||
text=When Master Thief enters the battlefield, gain control of target artifact for as long as you control Master Thief.
|
||||
mana={2}{U}{U}
|
||||
type=Creature
|
||||
subtype=Human Rogue
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Master Transmuter
|
||||
auto={H(artifact|mybattlefield)}{U}{T}:name(put artifact in play) transforms((,newability[ability$! moveTo(mybattlefield) notatarget(artifact|myhand) !$ controller])) oneshot
|
||||
text={U}, {T}, Return an artifact you control to its owner's hand: You may put an artifact card from your hand onto the battlefield.
|
||||
@@ -78857,7 +78878,7 @@ toughness=3
|
||||
name=Olivia Voldaren
|
||||
abilities=flying
|
||||
auto={1}{R}:all(this) counter(1/1,1) && target(other creature) damage:1 && transforms((vampire)) forever
|
||||
auto={3}{B}{B}:target(vampire) moveTo(mybattlefield) && transforms((,newability[@movedTo(Olivia Voldaren|nonbattlezone) from(battlefield):moveTo(ownerbattlefield)])) forever
|
||||
auto={3}{B}{B}:target(vampire) steal
|
||||
text=Flying -- {1}{R}: Olivia Voldaren deals 1 damage to another target creature. That creature becomes a Vampire in addition to its other types. Put a +1/+1 counter on Olivia Voldaren. -- {3}{B}{B}: Gain control of target Vampire for as long as you control Olivia Voldaren.
|
||||
mana={2}{B}{R}
|
||||
type=Legendary Creature
|
||||
@@ -79739,6 +79760,16 @@ power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Orcish Squatters
|
||||
auto=@combat(notblocked) source(this):may steal target(land|opponentbattlefield) && fog from(this) ueot
|
||||
text=Whenever Orcish Squatters attacks and isn't blocked, you may gain control of target land defending player controls for as long as you control Orcish Squatters. If you do, Orcish Squatters assigns no combat damage this turn.
|
||||
mana={4}{R}
|
||||
type=Creature
|
||||
subtype=Orc
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Orcish Veteran
|
||||
auto=cantbeblockerof(creature[white;power>=2])
|
||||
auto={R}:first strike
|
||||
@@ -92514,6 +92545,17 @@ power=5
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Roil Elemental
|
||||
abilities=flying
|
||||
auto=@movedTo(land|myBattlefield):may steal target(creature)
|
||||
text=Flying -- Landfall — Whenever a land enters the battlefield under your control, you may gain control of target creature for as long as you control Roil Elemental.
|
||||
mana={3}{U}{U}{U}
|
||||
type=Creature
|
||||
subtype=Elemental
|
||||
power=3
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Roil Spout
|
||||
target=creature|battlefield
|
||||
auto=moveto(ownerlibrary)
|
||||
@@ -116332,6 +116374,17 @@ mana={4}{B}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Thrull Champion
|
||||
auto=lord(creature[thrull]) 1/1
|
||||
auto={T}:steal target(thrull)
|
||||
text=Thrull creatures get +1/+1. -- {T}: Gain control of target Thrull for as long as you control Thrull Champion.
|
||||
mana={4}{B}
|
||||
type=Creature
|
||||
subtype=Thrull
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Thrull Retainer
|
||||
target=creature
|
||||
auto=1/1
|
||||
|
||||
@@ -4041,15 +4041,6 @@ power=8
|
||||
toughness=8
|
||||
[/card]
|
||||
[card]
|
||||
name=Dragonlord Silumgar
|
||||
text=Flying, deathtouch -- When Dragonlord Silumgar enters the battlefield, gain control of target creature or planeswalker for as long as you control Dragonlord Silumgar.
|
||||
mana={4}{U}{B}
|
||||
type=Legendary Creature
|
||||
subtype=Elder Dragon
|
||||
power=3
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Dragonlord's Prerogative
|
||||
text=As an additional cost to cast Dragonlord's Prerogative, you may reveal a Dragon card from your hand. -- If you revealed a Dragon card or controlled a Dragon as you cast Dragonlord's Prerogative, Dragonlord's Prerogative can't be countered. -- Draw four cards.
|
||||
mana={4}{U}{U}
|
||||
@@ -9463,15 +9454,6 @@ power=3
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Master Thief
|
||||
text=When Master Thief enters the battlefield, gain control of target artifact for as long as you control Master Thief.
|
||||
mana={2}{U}{U}
|
||||
type=Creature
|
||||
subtype=Human Rogue
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Master Warcraft
|
||||
text=Cast Master Warcraft only before attackers are declared. -- You choose which creatures attack this turn. -- You choose which creatures block this turn and how those creatures block.
|
||||
mana={2}{RW}{RW}
|
||||
@@ -11062,15 +11044,6 @@ type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Orcish Squatters
|
||||
text=Whenever Orcish Squatters attacks and isn't blocked, you may gain control of target land defending player controls for as long as you control Orcish Squatters. If you do, Orcish Squatters assigns no combat damage this turn.
|
||||
mana={4}{R}
|
||||
type=Creature
|
||||
subtype=Orc
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Ordeal of Erebos
|
||||
text=Enchant creature -- Whenever enchanted creature attacks, put a +1/+1 counter on it. Then if it has three or more +1/+1 counters on it, sacrifice Ordeal of Erebos. -- When you sacrifice Ordeal of Erebos, target player discards two cards.
|
||||
mana={1}{B}
|
||||
@@ -13202,15 +13175,6 @@ mana={G}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Roil Elemental
|
||||
text=Flying -- Landfall — Whenever a land enters the battlefield under your control, you may gain control of target creature for as long as you control Roil Elemental.
|
||||
mana={3}{U}{U}{U}
|
||||
type=Creature
|
||||
subtype=Elemental
|
||||
power=3
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Roiling Waters
|
||||
text=Return up to two target creatures your opponents control to their owners' hands. Target player draws two cards.
|
||||
mana={5}{U}{U}
|
||||
@@ -16498,15 +16462,6 @@ type=Artifact
|
||||
subtype=Equipment
|
||||
[/card]
|
||||
[card]
|
||||
name=Thrull Champion
|
||||
text=Thrull creatures get +1/+1. -- {T}: Gain control of target Thrull for as long as you control Thrull Champion.
|
||||
mana={4}{B}
|
||||
type=Creature
|
||||
subtype=Thrull
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Thrull Parasite
|
||||
text=Extort (Whenever you cast a spell, you may pay {WB}. If you do, each opponent loses 1 life and you gain that much life.) -- {T}, Pay 2 life: Remove a counter from target nonland permanent.
|
||||
mana={B}
|
||||
|
||||
@@ -5386,6 +5386,38 @@ public:
|
||||
ABlockSetCost * clone() const;
|
||||
};
|
||||
|
||||
//ASeize
|
||||
class ASeize: public MTGAbility
|
||||
{
|
||||
public:
|
||||
MTGCardInstance * Seized;
|
||||
Player * previousController;
|
||||
bool resolved;
|
||||
ASeize(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target);
|
||||
void Update(float dt);
|
||||
void resolveSeize();
|
||||
int resolve();
|
||||
int receiveEvent(WEvent * event);
|
||||
const string getMenuText();
|
||||
ASeize * clone() const;
|
||||
~ASeize();
|
||||
private:
|
||||
void returntoOwner(MTGCardInstance *_target);
|
||||
};
|
||||
|
||||
//SeizeWrapper
|
||||
class ASeizeWrapper: public InstantAbility
|
||||
{
|
||||
public:
|
||||
ASeize * ability;
|
||||
ASeizeWrapper(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target);
|
||||
int resolve();
|
||||
const string getMenuText();
|
||||
ASeizeWrapper * clone() const;
|
||||
~ASeizeWrapper();
|
||||
|
||||
};
|
||||
|
||||
//AShackle
|
||||
class AShackle: public MTGAbility
|
||||
{
|
||||
@@ -5416,6 +5448,7 @@ public:
|
||||
~AShackleWrapper();
|
||||
|
||||
};
|
||||
|
||||
//Grant
|
||||
class AGrant : public MTGAbility
|
||||
{
|
||||
@@ -5448,6 +5481,7 @@ public:
|
||||
~AGrantWrapper();
|
||||
|
||||
};
|
||||
|
||||
//ABlink
|
||||
class ABlink: public MTGAbility
|
||||
{
|
||||
|
||||
@@ -174,6 +174,7 @@ public:
|
||||
MTGCardInstance * createSnapShot();
|
||||
MTGCardInstance * storedSourceCard;
|
||||
MTGCardInstance * shackled;
|
||||
MTGCardInstance * seized;
|
||||
MTGCardInstance * isDefenser();
|
||||
int initAttackersDefensers();
|
||||
MTGCardInstance * getNextOpponent(MTGCardInstance * previous=NULL);
|
||||
|
||||
@@ -6913,6 +6913,137 @@ ABlockSetCost * ABlockSetCost::clone() const
|
||||
return NEW ABlockSetCost(*this);
|
||||
}
|
||||
|
||||
//ASeize
|
||||
ASeize::ASeize(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target) :
|
||||
MTGAbility(observer, _id, card)
|
||||
{
|
||||
target = _target;
|
||||
Seized = NULL;
|
||||
previousController = NULL;
|
||||
resolved = false;
|
||||
}
|
||||
|
||||
void ASeize::Update(float dt)
|
||||
{
|
||||
if (resolved == false)
|
||||
{
|
||||
resolved = true;
|
||||
resolveSeize();
|
||||
}
|
||||
|
||||
if (!source->isInPlay(game))
|
||||
{
|
||||
if (Seized == NULL || !Seized->isInPlay(game))
|
||||
MTGAbility::Update(dt);
|
||||
MTGCardInstance * _target = Seized;
|
||||
returntoOwner(_target);
|
||||
}
|
||||
MTGAbility::Update(dt);
|
||||
}
|
||||
|
||||
void ASeize::resolveSeize()
|
||||
{
|
||||
MTGCardInstance * _target = (MTGCardInstance *) target;
|
||||
if (_target)
|
||||
{
|
||||
previousController = _target->controller();
|
||||
previousController->game->putInZone(_target, _target->currentZone,
|
||||
source->controller()->game->inPlay);
|
||||
Seized = _target;
|
||||
source->seized = Seized;
|
||||
Seized->seized = source;
|
||||
}
|
||||
}
|
||||
|
||||
void ASeize::returntoOwner(MTGCardInstance* _target) {
|
||||
MTGCardInstance * cardToReturn = _target;
|
||||
if(!cardToReturn)
|
||||
{
|
||||
if (source)
|
||||
source->seized = NULL;
|
||||
this->forceDestroy = 1;
|
||||
return;
|
||||
}
|
||||
if(previousController && cardToReturn->isInPlay(game))
|
||||
{
|
||||
cardToReturn->seized = NULL;
|
||||
cardToReturn->controller()->game->putInZone(_target, _target->currentZone,
|
||||
previousController->game->inPlay);
|
||||
}
|
||||
if (source)
|
||||
source->seized = NULL;
|
||||
this->forceDestroy = 1;
|
||||
Seized = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
int ASeize::resolve()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ASeize::receiveEvent(WEvent * event)
|
||||
{
|
||||
WEventCardControllerChange * enters = dynamic_cast<WEventCardControllerChange *> (event);
|
||||
if (enters && source)
|
||||
{
|
||||
if(enters->card == source)
|
||||
{
|
||||
if(Seized && Seized->controller() != enters->card->controller())
|
||||
returntoOwner(Seized);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
const string ASeize::getMenuText()
|
||||
{
|
||||
return "Gain Control";
|
||||
}
|
||||
|
||||
ASeize * ASeize::clone() const
|
||||
{
|
||||
ASeize * a = NEW ASeize(*this);
|
||||
a->forceDestroy = -1;
|
||||
return a;
|
||||
};
|
||||
ASeize::~ASeize()
|
||||
{
|
||||
}
|
||||
|
||||
ASeizeWrapper::ASeizeWrapper(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target) :
|
||||
InstantAbility(observer, _id, source, _target)
|
||||
{
|
||||
ability = NEW ASeize(observer, _id,card,_target);
|
||||
}
|
||||
|
||||
int ASeizeWrapper::resolve()
|
||||
{
|
||||
ASeize * a = ability->clone();
|
||||
a->target = target;
|
||||
a->addToGame();
|
||||
return 1;
|
||||
}
|
||||
|
||||
const string ASeizeWrapper::getMenuText()
|
||||
{
|
||||
return "Gain Control";
|
||||
}
|
||||
|
||||
ASeizeWrapper * ASeizeWrapper::clone() const
|
||||
{
|
||||
ASeizeWrapper * a = NEW ASeizeWrapper(*this);
|
||||
a->ability = this->ability->clone();
|
||||
a->oneShot = 1;
|
||||
return a;
|
||||
}
|
||||
|
||||
ASeizeWrapper::~ASeizeWrapper()
|
||||
{
|
||||
SAFE_DELETE(ability);
|
||||
}
|
||||
|
||||
//AShackle
|
||||
AShackle::AShackle(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target) :
|
||||
MTGAbility(observer, _id, card)
|
||||
|
||||
@@ -3903,10 +3903,11 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
||||
return a;
|
||||
}
|
||||
|
||||
//steal target until source leaves battlefield
|
||||
found = s.find("steal");
|
||||
if (found != string::npos)
|
||||
{
|
||||
MTGAbility * a = NEW AInstantControlSteal(observer, id, card, target);
|
||||
MTGAbility * a = NEW ASeizeWrapper(observer, id, card, target);
|
||||
a->oneShot = 1;
|
||||
return a;
|
||||
}
|
||||
|
||||
@@ -237,6 +237,7 @@ void MTGCardInstance::initMTGCI()
|
||||
storedSourceCard = NULL;
|
||||
myPair = NULL;
|
||||
shackled = NULL;
|
||||
seized = NULL;
|
||||
miracle = false;
|
||||
hasCopiedToken = false;
|
||||
countTrini = 0;
|
||||
|
||||
Reference in New Issue
Block a user