added engine code to do a putinzone without sending events.
equipping no longer retriggers a copier. retarget and newtarget no long send the events due to refreshing the cards.
This commit is contained in:
@@ -2708,6 +2708,11 @@ public:
|
|||||||
a->forceDestroy = 1;
|
a->forceDestroy = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (dynamic_cast<AACopier *> (af.getCoreAbility(a)))
|
||||||
|
{
|
||||||
|
a->forceDestroy = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
//we generally dont want to pass oneShot tokencreators to the cards
|
//we generally dont want to pass oneShot tokencreators to the cards
|
||||||
//we equip...
|
//we equip...
|
||||||
a->addToGame();
|
a->addToGame();
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ public:
|
|||||||
MTGCardInstance * putInExile(MTGCardInstance * card);
|
MTGCardInstance * putInExile(MTGCardInstance * card);
|
||||||
MTGCardInstance * putInLibrary(MTGCardInstance * card);
|
MTGCardInstance * putInLibrary(MTGCardInstance * card);
|
||||||
MTGCardInstance * putInHand(MTGCardInstance * card);
|
MTGCardInstance * putInHand(MTGCardInstance * card);
|
||||||
MTGCardInstance * putInZone(MTGCardInstance * card, MTGGameZone * from, MTGGameZone * to);
|
MTGCardInstance * putInZone(MTGCardInstance * card, MTGGameZone * from, MTGGameZone * to,bool sendEvent = true);
|
||||||
int isInPlay(MTGCardInstance * card);
|
int isInPlay(MTGCardInstance * card);
|
||||||
int isInGrave(MTGCardInstance * card);
|
int isInGrave(MTGCardInstance * card);
|
||||||
int isInZone(MTGCardInstance * card,MTGGameZone * zone);
|
int isInZone(MTGCardInstance * card,MTGGameZone * zone);
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ MTGCardInstance * MTGPlayerCards::putInHand(MTGCardInstance * card)
|
|||||||
|
|
||||||
// Moves a card from one zone to another
|
// Moves a card from one zone to another
|
||||||
// If the card is not actually in the expected "from" zone, does nothing and returns null
|
// If the card is not actually in the expected "from" zone, does nothing and returns null
|
||||||
MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone * from, MTGGameZone * to)
|
MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone * from, MTGGameZone * to,bool sendEvent)
|
||||||
{
|
{
|
||||||
MTGCardInstance * copy = NULL;
|
MTGCardInstance * copy = NULL;
|
||||||
GameObserver *g = owner->getObserver();
|
GameObserver *g = owner->getObserver();
|
||||||
@@ -369,10 +369,11 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
|
|||||||
SAFE_DELETE(previous);
|
SAFE_DELETE(previous);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(sendEvent)
|
||||||
|
{
|
||||||
WEvent * e = NEW WEventZoneChange(copy, from, to);
|
WEvent * e = NEW WEventZoneChange(copy, from, to);
|
||||||
g->receiveEvent(e);
|
g->receiveEvent(e);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user