Bug Fix on Cloning Tokens

This commit is contained in:
Anthony Calosa
2015-09-18 19:56:02 +08:00
parent bd89710478
commit 6cd0474eca
4 changed files with 21 additions and 7 deletions

View File

@@ -2456,6 +2456,7 @@ public:
if(cda)
{//Characteristic-defining abilities
_target->cdaPT(wppt->power.getValue(),wppt->toughness.getValue());
_target->isCDA = true;
}
else
{

View File

@@ -234,6 +234,7 @@ public:
void revertbaseP();
void revertbaseT();
void cdaPT(int p = 0, int t = 0);
bool isCDA;
void eventattacked();
void eventattackedAlone();

View File

@@ -2536,16 +2536,27 @@ int AACloner::resolve()
spell->source->fresh = 1;
spell->source->model = spell->source;
spell->source->model->data = spell->source;
//commenting this out fixes some problems when duplicating tokens 9/16/2015
/*if(_target->isToken)
//if the token doesn't have cda/dynamic pt then allow this...
if((_target->isToken) && (!_target->isCDA))
{
spell->source->power = _target->origpower;
spell->source->toughness = _target->origtoughness;
spell->source->life = _target->origtoughness;
}*/
if(_target->pbonus > 0)
spell->source->power = _target->power - _target->pbonus;
else
spell->source->power = _target->power + _target->pbonus;
if(_target->tbonus > 0)
{
spell->source->toughness = _target->toughness - _target->tbonus;
spell->source->life = _target->toughness - _target->tbonus;
}
else
{
spell->source->toughness = _target->toughness + _target->tbonus;
spell->source->life = _target->toughness + _target->tbonus;
}
}
list<int>::iterator it;
for (it = awith.begin(); it != awith.end(); it++)
{
{//there must be a layer of temporary abilities and original abilities
spell->source->basicAbilities[*it] = 1;
}
for (it = colors.begin(); it != colors.end(); it++)

View File

@@ -54,6 +54,7 @@ MTGCardInstance::MTGCardInstance(MTGCard * card, MTGPlayerCards * arg_belongs_to
flanked = 0;
castMethod = Constants::NOT_CAST;
isSettingBase = 0;
isCDA = false;
}
MTGCardInstance * MTGCardInstance::createSnapShot()