added a modifier for "tap" for cards that say "enters the battlefield tapped", they are supposed to be tapped when put in play, which mean they should not trigger @tapped(.

for cards with the line or options "do/pay MANA or this card enters the battlefield tapped"
simply change it to tap(noevent)
it will simulate the card being placed into play already tapped.
This commit is contained in:
zethfoxster
2016-07-07 19:02:41 -04:00
parent 34d10bba3c
commit 61d22eb498
8 changed files with 15 additions and 8 deletions

View File

@@ -1159,6 +1159,8 @@ public:
{
WEventCardTap * e = dynamic_cast<WEventCardTap *> (event);
if (!e) return 0;
if (e->noTrigger)
return 0;
if (e->before == e->after) return 0;
if (e->after != tap) return 0;
if (!tc->canTarget(e->card)) return 0;
@@ -4361,7 +4363,8 @@ public:
class AATapper: public ActivatedAbility
{
public:
AATapper(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, ManaCost * _cost = NULL);
bool _sendNoEvent;
AATapper(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, ManaCost * _cost = NULL, bool _sendNoEvent = true);
int resolve();
const string getMenuText();
AATapper * clone() const;

View File

@@ -222,7 +222,7 @@ public:
int isUntapping();
int isTapped();
void untap();
void tap();
void tap(bool sendNoEvent = false);
void attemptUntap();
//cda and other func

View File

@@ -127,6 +127,7 @@ struct WEventCardChangeType : public WEventCardUpdate {
struct WEventCardTap : public WEventCardUpdate {
bool before;
bool after;
bool noTrigger;
WEventCardTap(MTGCardInstance * card, bool before, bool after);
virtual Targetable * getTarget(int target);
};