rebounded trigger
for use with rebound cards only
This commit is contained in:
@@ -425,6 +425,19 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TriggerRebound : public TriggerAtPhase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int destroyActivated;
|
||||||
|
bool sourceUntapped;
|
||||||
|
bool sourceTap;
|
||||||
|
bool once,activeTrigger;
|
||||||
|
TriggerRebound(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target,int _phaseId, int who = 0,bool sourceUntapped = false,bool sourceTap = false,bool once = false);
|
||||||
|
virtual TriggerRebound* clone() const;
|
||||||
|
virtual int testDestroy();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class GenericTriggeredAbility : public TriggeredAbility, public NestedAbility
|
class GenericTriggeredAbility : public TriggeredAbility, public NestedAbility
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1112,6 +1112,13 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//rebound trigger controller upkeep...
|
||||||
|
found = s.find("rebounded");
|
||||||
|
if (found != string::npos)
|
||||||
|
{
|
||||||
|
return NEW TriggerRebound(observer, id, card, target, 2, 1,sourceUntapped,once);
|
||||||
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6046,6 +6053,30 @@ TriggerNextPhase* TriggerNextPhase::clone() const
|
|||||||
return NEW TriggerNextPhase(*this);
|
return NEW TriggerNextPhase(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TriggerRebound::TriggerRebound(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who,bool sourceUntapped, bool sourceTap,bool once) :
|
||||||
|
TriggerAtPhase(observer, id, source, target, _phaseId, who, sourceUntapped, sourceTap, once)
|
||||||
|
{
|
||||||
|
destroyActivated = 0;
|
||||||
|
activeTrigger = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TriggerRebound::testDestroy()
|
||||||
|
{
|
||||||
|
if(newPhase <= phaseId && !destroyActivated && game->currentPlayer == source->controller())
|
||||||
|
destroyActivated=1;
|
||||||
|
if(destroyActivated > 1||(newPhase > phaseId && destroyActivated))
|
||||||
|
{
|
||||||
|
destroyActivated++;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
TriggerRebound* TriggerRebound::clone() const
|
||||||
|
{
|
||||||
|
return NEW TriggerRebound(*this);
|
||||||
|
}
|
||||||
|
|
||||||
GenericTriggeredAbility::GenericTriggeredAbility(GameObserver* observer, int id, MTGCardInstance * _source, TriggeredAbility * _t, MTGAbility * a,
|
GenericTriggeredAbility::GenericTriggeredAbility(GameObserver* observer, int id, MTGCardInstance * _source, TriggeredAbility * _t, MTGAbility * a,
|
||||||
MTGAbility * dc, Targetable * _target) :
|
MTGAbility * dc, Targetable * _target) :
|
||||||
TriggeredAbility(observer, id, _source, _target), NestedAbility(a)
|
TriggeredAbility(observer, id, _source, _target), NestedAbility(a)
|
||||||
|
|||||||
Reference in New Issue
Block a user