Improved implementation for isCommander and RingBearer card status (now they are no longer basic abilities but inner card properties in order to avoid conflicts with abilitiy modificators), added a white border on commanders to highlight them during match in the various game zones.

This commit is contained in:
Vittorio Alfieri
2023-07-01 16:28:19 +02:00
parent 6731251d07
commit 617ce45dbc
14 changed files with 101 additions and 49 deletions
+1 -7
View File
@@ -6165,12 +6165,8 @@ int AbilityFactory::getAbilities(vector<MTGAbility *> * v, Spell * spell, MTGCar
card->types.clear();
string cre = "Creature";
card->setType(cre.c_str());
if(card->has(Constants::ISCOMMANDER)){
card->basicAbilities[Constants::WASCOMMANDER] = 1;
card->basicAbilities[Constants::ISCOMMANDER] = 0;
}
for(size_t i = 0; i < card->basicAbilities.size(); i++) {
if(i != Constants::WASCOMMANDER && i != Constants::GAINEDEXILEDEATH && i != Constants::GAINEDHANDDEATH && i != Constants::GAINEDDOUBLEFACEDEATH &&
if(i != Constants::GAINEDEXILEDEATH && i != Constants::GAINEDHANDDEATH && i != Constants::GAINEDDOUBLEFACEDEATH &&
i != Constants::DUNGEONCOMPLETED && i != Constants::PERPETUALDEATHTOUCH && i != Constants::PERPETUALLIFELINK)
card->basicAbilities[i] = 0; // Try to keep the original special abilities on card morph.
}
@@ -6186,8 +6182,6 @@ int AbilityFactory::getAbilities(vector<MTGAbility *> * v, Spell * spell, MTGCar
card->types = card->model->data->types;
card->colors = card->model->data->colors;
card->basicAbilities |= card->model->data->basicAbilities;
card->basicAbilities[Constants::ISCOMMANDER] = card->basicAbilities[Constants::WASCOMMANDER];
card->basicAbilities[Constants::WASCOMMANDER] = 0;
ManaCost * copyCost = card->model->data->getManaCost();
card->getManaCost()->copy(copyCost);
magicText = card->model->data->magicText;