Added missing cards from GRN sets, improved mutation trigger, improved Surveil ability, implemented trigger and offset on surveil ability to allow combo with other cards (see issue #1037 opened by luisguerin).
This commit is contained in:
@@ -582,6 +582,10 @@ private:
|
||||
{
|
||||
intValue = (s == "pyidarocount")?card->controller()->yidaroCount:card->controller()->opponent()->yidaroCount;
|
||||
}
|
||||
else if (s == "psurveiloffset" || s == "osurveiloffset")
|
||||
{
|
||||
intValue = (s == "psurveiloffset")?card->controller()->surveilOffset:card->controller()->opponent()->surveilOffset;
|
||||
}
|
||||
else if (s == "praidcount")
|
||||
{
|
||||
intValue = card->controller()->raidcount;
|
||||
@@ -1679,8 +1683,9 @@ public:
|
||||
class TrCardMutated: public Trigger
|
||||
{
|
||||
public:
|
||||
bool thiscontroller, thisopponent;
|
||||
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false) :
|
||||
bool limitOnceATurn;
|
||||
int triggeredTurn;
|
||||
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
|
||||
Trigger(observer, id, source,once, tc)
|
||||
{
|
||||
}
|
||||
@@ -1689,7 +1694,10 @@ public:
|
||||
{
|
||||
WEventCardMutated * e = dynamic_cast<WEventCardMutated *> (event);
|
||||
if (!e) return 0;
|
||||
if (limitOnceATurn && triggeredTurn == game->turn)
|
||||
return 0;
|
||||
if (!tc->canTarget(e->card)) return 0;
|
||||
triggeredTurn = game->turn;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1699,6 +1707,33 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class TrCardSurveiled: public Trigger
|
||||
{
|
||||
public:
|
||||
bool limitOnceATurn;
|
||||
int triggeredTurn;
|
||||
TrCardSurveiled(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
|
||||
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
|
||||
{
|
||||
}
|
||||
|
||||
int triggerOnEventImpl(WEvent * event)
|
||||
{
|
||||
WEventCardSurveiled * e = dynamic_cast<WEventCardSurveiled *> (event);
|
||||
if (!e) return 0;
|
||||
if (limitOnceATurn && triggeredTurn == game->turn)
|
||||
return 0;
|
||||
if (!tc->canTarget(e->card)) return 0;
|
||||
triggeredTurn = game->turn;
|
||||
return 1;
|
||||
}
|
||||
|
||||
TrCardSurveiled * clone() const
|
||||
{
|
||||
return NEW TrCardSurveiled(*this);
|
||||
}
|
||||
};
|
||||
|
||||
class TrTokenCreated: public Trigger
|
||||
{
|
||||
public:
|
||||
@@ -4842,6 +4877,19 @@ public:
|
||||
AAAlterEnergy * clone() const;
|
||||
~AAAlterEnergy();
|
||||
};
|
||||
//Surveil Event
|
||||
class AASurveilEvent: public ActivatedAbilityTP
|
||||
{
|
||||
public:
|
||||
MTGCardInstance * card;
|
||||
|
||||
AASurveilEvent(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, ManaCost * _cost = NULL,
|
||||
int who = TargetChooser::UNSET);
|
||||
int resolve();
|
||||
const string getMenuText();
|
||||
AASurveilEvent * clone() const;
|
||||
~AASurveilEvent();
|
||||
};
|
||||
//Yidaro Counter
|
||||
class AAAlterYidaroCount: public ActivatedAbilityTP
|
||||
{
|
||||
@@ -4855,6 +4903,19 @@ public:
|
||||
AAAlterYidaroCount * clone() const;
|
||||
~AAAlterYidaroCount();
|
||||
};
|
||||
//Surveil Offset
|
||||
class AAAlterSurveilOffset: public ActivatedAbilityTP
|
||||
{
|
||||
public:
|
||||
int surveilOffset;
|
||||
|
||||
AAAlterSurveilOffset(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int surveilOffset, ManaCost * _cost = NULL,
|
||||
int who = TargetChooser::UNSET);
|
||||
int resolve();
|
||||
const string getMenuText();
|
||||
AAAlterSurveilOffset * clone() const;
|
||||
~AAAlterSurveilOffset();
|
||||
};
|
||||
/* Standard Damager, can choose a NEW target each time the price is paid */
|
||||
class TADamager: public TargetAbility
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user