diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index b7ef62287..abb0e7cc4 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -87132,7 +87132,7 @@ toughness=7 [/card] [card] name=Silumgar Assassin -abilities=strong +abilities=evadebigger facedown={3} autofacedown={2}{B}:morph autofaceup=counter(1/1,1) diff --git a/projects/mtg/include/MTGCardInstance.h b/projects/mtg/include/MTGCardInstance.h index 5e92c3a02..78414efff 100644 --- a/projects/mtg/include/MTGCardInstance.h +++ b/projects/mtg/include/MTGCardInstance.h @@ -239,6 +239,7 @@ public: int swapP; int swapT; bool isSwitchedPT; + bool isACopier; void eventattacked(); void eventattackedAlone(); diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index 5f4ea6dde..867a315d9 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -225,7 +225,8 @@ class Constants LIBRARYDEATH = 107, SHUFFLELIBRARYDEATH = 108, OFFERING = 109, - NB_BASIC_ABILITIES = 110, + EVADEBIGGER = 110, + NB_BASIC_ABILITIES = 111, RARITY_S = 'S', //Special Rarity diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 80df4716e..327970347 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -384,6 +384,7 @@ int AACopier::resolve() if (_target) { source->copy(_target); + source->isACopier = true; return 1; } return 0; diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 61c6ab2c3..7cba76de2 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -287,29 +287,37 @@ void CardGui::Render() ARGB(((static_cast(actA))/2),0,0,0)); //damaged or buffed or powered down if(card->wasDealtDamage && card->life <= 2) - mFont->SetColor(ARGB(static_cast(actA),255,0,0));//red + mFont->SetColor(ARGB(static_cast(actA),255,0,0));//red critical and damaged else if(!card->wasDealtDamage && card->pbonus < 0) - mFont->SetColor(ARGB(static_cast(actA),216,191,216));//thistle - else if(card->getRarity() == Constants::RARITY_T) - mFont->SetColor(ARGB(static_cast(actA),245,245,245));//smoke + mFont->SetColor(ARGB(static_cast(actA),216,191,216));//thistle powered down + else if(!card->wasDealtDamage && card->pbonus >= 3) + mFont->SetColor(ARGB(static_cast(actA),255,255,0));//yellow buff else if(card->hasType("legendary") && card->hasType("eldrazi")) - mFont->SetColor(ARGB(static_cast(actA),238,130,238));//violet + mFont->SetColor(ARGB(static_cast(actA),238,130,238));//violet legendary eldrazi else - mFont->SetColor(ARGB(static_cast(actA),255,255,255));//white + mFont->SetColor(ARGB(static_cast(actA),255,255,255));//white default mFont->SetScale(actZ); mFont->SetScale(actZ); mFont->DrawString(buffer, actX - 10 * actZ, actY + 8 * actZ); mFont->SetScale(1); } - if(card->getRarity() == Constants::RARITY_T) + string buff = ""; + if(card->isToken && !card->isACopier) + buff = "T"; + if(card->isToken && card->isACopier) + buff = "CT"; + if(!card->isToken && card->isACopier) + buff = "C"; + + if(!alternate && buff != "") { mFont->SetScale(DEFAULT_MAIN_FONT_SCALE); char buffer[200]; - sprintf(buffer, "T"); - mFont->SetColor(ARGB(static_cast(actA),255,222,173));//Navajo + sprintf(buffer, "%c", buff); + mFont->SetColor(ARGB(static_cast(actA),255,182,193));//Light Pink indicator mFont->SetScale(0.8f); - mFont->DrawString(buffer, actX - 10 * actZ, actY - (18 * actZ)); + mFont->DrawString(buffer, actX - 10 * actZ, actY - (16 * actZ)); mFont->SetScale(1); } diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 616757249..1744a8d56 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -56,6 +56,7 @@ MTGCardInstance::MTGCardInstance(MTGCard * card, MTGPlayerCards * arg_belongs_to isSettingBase = 0; isCDA = false; isSwitchedPT = false; + isACopier = false; } MTGCardInstance * MTGCardInstance::createSnapShot() @@ -750,6 +751,8 @@ int MTGCardInstance::canBlock(MTGCardInstance * opponent) return 0; if (opponent->basicAbilities[(int)Constants::ONEBLOCKER] && opponent->blocked) return 0; + if(opponent->basicAbilities[(int)Constants::EVADEBIGGER] && power > opponent->power) + return 0; if(opponent->basicAbilities[(int)Constants::STRONG] && power < opponent->power) return 0; if(this->basicAbilities[(int)Constants::WEAK] && power < opponent->power) diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 13d0ec579..77b162f5e 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -138,7 +138,8 @@ const char* Constants::MTGBasicAbilities[] = { "oppgraveexiler", "librarydeath", "shufflelibrarydeath", - "offering" + "offering", + "evadebigger" }; map Constants::MTGBasicAbilitiesMap;