revised fix for copier

This commit is contained in:
Anthony Calosa
2016-08-13 20:12:55 +08:00
parent 71aedfd96d
commit 27145bdabe
3 changed files with 52 additions and 14 deletions

View File

@@ -96,10 +96,16 @@ MTGCardInstance::MTGCardInstance(MTGCard * card, MTGPlayerCards * arg_belongs_to
void MTGCardInstance::copy(MTGCardInstance * card)
{
//MTGCard * source = card->model;
MTGCard * source = card;
MTGCard * source = NULL;
if(card->isToken || card->hasCopiedToken)
{
source = card;
}
else
source = MTGCollection()->getCardById(card->copiedID);
CardPrimitive * data = source->data;
basicAbilities = card->model->data->basicAbilities;
basicAbilities = data->basicAbilities;
for (size_t i = 0; i < data->types.size(); i++)
{
types.push_back(data->types[i]);
@@ -121,17 +127,19 @@ void MTGCardInstance::copy(MTGCardInstance * card)
magicText = data->magicText;
spellTargetType = data->spellTargetType;
alias = data->alias;
copiedID = card->copiedID;
doubleFaced = data->doubleFaced;
//Now this is dirty...
int backupid = mtgid;
int castMethodBackUP = this->castMethod;
mtgid = source->getId();
MTGCardInstance * oldStored = this->storedSourceCard;
Spell * spell = NEW Spell(observer, this);
/*Spell * spell = NEW Spell(observer, this);
observer = card->observer;
AbilityFactory af(observer);
af.addAbilities(observer->mLayers->actionLayer()->getMaxId(), spell);
delete spell;
delete spell;*/
if(observer->players[1]->playMode == Player::MODE_TEST_SUITE)
mtgid = backupid; // there must be a way to get the token id...
else