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
+29 -3
View File
@@ -257,9 +257,11 @@ void CardGui::Render()
if(game)
{
if(card->has(Constants::PAYZERO) ||
((card->has(Constants::CANPLAYFROMGRAVEYARD) || card->has(Constants::TEMPFLASHBACK) || card->getManaCost()->getFlashback() || card->getManaCost()->getRetrace()) && game->isInGrave(card)) ||
(((card->has(Constants::FORETELL) && card->foretellTurn > -1 && game->turn > card->foretellTurn) || card->has(Constants::CANPLAYFROMEXILE)) && game->isInExile(card)))
fakeborder->SetColor(ARGB((int)(actA),7,235,7));//green border
((card->has(Constants::CANPLAYFROMGRAVEYARD) || card->has(Constants::TEMPFLASHBACK) || card->getManaCost()->getFlashback() || card->getManaCost()->getRetrace()) && game->isInGrave(card)) ||
(((card->has(Constants::FORETELL) && card->foretellTurn > -1 && game->turn > card->foretellTurn) || card->has(Constants::CANPLAYFROMEXILE)) && game->isInExile(card)))
fakeborder->SetColor(ARGB((int)(actA),7,235,7)); //green border
else if(card->isCommander)
fakeborder->SetColor(ARGB((int)(actA),255,255,255)); //white border for commanders
else
fakeborder->SetColor(ARGB((int)(actA),15,15,15));
}
@@ -1616,6 +1618,30 @@ bool CardGui::FilterCard(MTGCard * _card,string filter)
cd.isFlipped = 1;
}
}
//Card is commander
else if (attribute.find("iscommander") != string::npos)
{
if (minus)
{
cd.isCommander = -1;
}
else
{
cd.isCommander = 1;
}
}
//Card is Ring bearer
else if (attribute.find("ringbearer") != string::npos)
{
if (minus)
{
cd.isRingBearer = -1;
}
else
{
cd.isRingBearer = 1;
}
}
//Has x in cost
else if (attribute.find("hasx") != string::npos)
{