Added last primitives from MAT set, updated missing cards by set list, improved trigger and filtering for mana production abilities.

This commit is contained in:
Vittorio Alfieri
2023-05-25 18:48:00 +02:00
parent 319cfe7889
commit 8df057f78a
13 changed files with 649 additions and 376 deletions

View File

@@ -278,6 +278,34 @@ public:
}
};
class TrCardManaproduced: public Trigger
{
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardManaproduced(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source, once, tc), limitOnceATurn(limitOnceATurn)
{
triggeredTurn = -1;
}
int triggerOnEventImpl(WEvent * event)
{
WEventCardManaProduced * e = dynamic_cast<WEventCardManaProduced *> (event);
if (!e) return 0;
if (limitOnceATurn && triggeredTurn == game->turn)
return 0;
if (!tc->canTarget(e->card)) return 0;
triggeredTurn = game->turn;
return 1;
}
TrCardManaproduced * clone() const
{
return NEW TrCardManaproduced(*this);
}
};
class TrCardPhasesIn: public Trigger
{
public:

View File

@@ -150,8 +150,10 @@ public:
int summoningSickness;
ManaCost reducedCost;
ManaCost increasedCost;
ManaCost producedMana;
ManaCost * getReducedManaCost();
ManaCost * getIncreasedManaCost();
ManaCost * getProducedMana();
bool matchesCastFilter(int castMethod);
bool hasTotemArmor();

View File

@@ -161,6 +161,10 @@ struct WEventCardTappedForMana : public WEventCardUpdate {
virtual Targetable * getTarget(int target);
};
struct WEventCardManaProduced : public WEventCardUpdate {
WEventCardManaProduced(MTGCardInstance * card);
virtual Targetable * getTarget(int target);
};
//Event when a card's "attacker" status changes
//before:Player/Planeswalker that card was attacking previously