added an ability keyword that resolves to do nothing.

"donothing"
this is to avoid using powerandtoughness 0/0 ability to mean "do nothing"

old code
[card]
name=Inquisition
target=player
auto=target(*|targetedpersonshand) 0/0
auto=foreach(*[white]|targetedpersonshand) damage:1 targetedplayer
text=Target player reveals his or her hand. Inquisition deals damage to that player equal to the number of white cards in his or her hand.
mana={2}{B}
type=Sorcery
[/card]

new code
[card]
name=Inquisition
target=player
auto=target(*|targetedpersonshand) donothing
auto=foreach(*[white]|targetedpersonshand) damage:1 targetedplayer
text=Target player reveals his or her hand. Inquisition deals damage to that player equal to the number of white cards in his or her hand.
mana={2}{B}
type=Sorcery
[/card]
This commit is contained in:
omegablast2002@yahoo.com
2013-01-30 02:38:25 +00:00
parent b7a2c000be
commit f8800b8bbd
3 changed files with 38 additions and 0 deletions

View File

@@ -1028,6 +1028,15 @@ public:
AAResetDamage * clone() const;
};
class AAFakeAbility: public ActivatedAbility
{
public:
AAFakeAbility(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, ManaCost * cost = NULL);
int resolve();
const char* getMenuText();
AAFakeAbility * clone() const;
};
class AAFizzler: public ActivatedAbility
{

View File

@@ -1176,6 +1176,26 @@ AAResetDamage * AAResetDamage::clone() const
return NEW AAResetDamage(*this);
}
//ability that resolves to do nothing.
AAFakeAbility::AAFakeAbility(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * _target, ManaCost * cost):
ActivatedAbility(observer, id, source, cost, 0)
{
this->target = _target;
}
int AAFakeAbility::resolve()
{
return 1;
}
const char* AAFakeAbility::getMenuText()
{
return "Ability";
}
AAFakeAbility * AAFakeAbility::clone() const
{
return NEW AAFakeAbility(*this);
}
// Fizzler
AAFizzler::AAFizzler(GameObserver* observer, int _id, MTGCardInstance * card, Spell * _target, ManaCost * _cost) :

View File

@@ -2196,6 +2196,15 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
return a;
}
//Reset damages on cards
found = s.find("donothing");
if (found != string::npos)
{
MTGAbility * a = NEW AAFakeAbility(observer, id, card, target);
a->oneShot = 1;
return a;
}
//Damage
vector<string> splitDamage = parseBetween(s, "damage:", " ", false);
if (splitDamage.size())