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
+4 -8
View File
@@ -1081,13 +1081,13 @@ int AARingBearerChosen::resolve()
{
MTGCardInstance * currentBearer = NULL;
for (int j = _target->controller()->game->inPlay->nb_cards - 1; j >= 0; --j){
if(_target->controller()->game->inPlay->cards[j]->basicAbilities[Constants::RINGBEARER] == 1){
if(_target->controller()->game->inPlay->cards[j]->isRingBearer == 1){
currentBearer = _target->controller()->game->inPlay->cards[j];
_target->controller()->game->inPlay->cards[j]->basicAbilities[Constants::RINGBEARER] = 0;
_target->controller()->game->inPlay->cards[j]->isRingBearer = 0;
break;
}
}
_target->basicAbilities[Constants::RINGBEARER] = 1;
_target->isRingBearer = 1;
bool bearerChanged = false;
if(currentBearer == NULL || currentBearer != _target){
for (int j = _target->controller()->game->inPlay->nb_cards - 1; j >= 0; --j){
@@ -5147,12 +5147,8 @@ int AAFlip::resolve()
}
SAFE_DELETE(myOrig);
} else{
if(_target->has(Constants::ISCOMMANDER)){
_target->basicAbilities[Constants::WASCOMMANDER] = 1;
_target->basicAbilities[Constants::ISCOMMANDER] = 0;
}
for(size_t i = 0; i < _target->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)
_target->basicAbilities[i] = myFlip->model->data->basicAbilities[i]; // Try to keep the original special abilities on card flip.
}