Shackled highlight border

This commit is contained in:
Anthony Calosa
2016-07-06 07:55:10 +08:00
parent 935849142c
commit 1d80d97d22
4 changed files with 34 additions and 1 deletions

View File

@@ -168,6 +168,7 @@ public:
MTGCardInstance * myPair; MTGCardInstance * myPair;
MTGCardInstance * createSnapShot(); MTGCardInstance * createSnapShot();
MTGCardInstance * storedSourceCard; MTGCardInstance * storedSourceCard;
MTGCardInstance * shackled;
MTGCardInstance * isDefenser(); MTGCardInstance * isDefenser();
int initAttackersDefensers(); int initAttackersDefensers();
MTGCardInstance * getNextOpponent(MTGCardInstance * previous=NULL); MTGCardInstance * getNextOpponent(MTGCardInstance * previous=NULL);

View File

@@ -6531,6 +6531,8 @@ void AShackle::resolveShackle()
previousController->game->putInZone(_target, _target->currentZone, previousController->game->putInZone(_target, _target->currentZone,
source->controller()->game->inPlay); source->controller()->game->inPlay);
Shackled = _target; Shackled = _target;
source->shackled = Shackled;
Shackled->shackled = source;
} }
} }
@@ -6538,14 +6540,19 @@ void AShackle::returntoOwner(MTGCardInstance* _target) {
MTGCardInstance * cardToReturn = _target; MTGCardInstance * cardToReturn = _target;
if(!cardToReturn) if(!cardToReturn)
{ {
if (source)
source->shackled = NULL;
this->forceDestroy = 1; this->forceDestroy = 1;
return; return;
} }
if(previousController && cardToReturn->isInPlay(game)) if(previousController && cardToReturn->isInPlay(game))
{ {
cardToReturn->shackled = NULL;
cardToReturn->controller()->game->putInZone(_target, _target->currentZone, cardToReturn->controller()->game->putInZone(_target, _target->currentZone,
previousController->game->inPlay); previousController->game->inPlay);
} }
if (source)
source->shackled = NULL;
this->forceDestroy = 1; this->forceDestroy = 1;
Shackled = NULL; Shackled = NULL;
return; return;

View File

@@ -274,8 +274,32 @@ void CardGui::Render()
{ {
if(cv->mHasFocus) if(cv->mHasFocus)
{ {
highlightborder->SetColor(ARGB(200,57,28,248)); highlightborder->SetColor(ARGB(200,57,28,248));
renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16);
}
}
}
if(card->shackled && card->shackled->isInPlay(game) && highlightborder)
{
if(mHasFocus)
{
if(card->has(Constants::SHACKLER))
highlightborder->SetColor(ARGB(200,7,98,248));
else
highlightborder->SetColor(ARGB(200,57,28,248));
renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16);
}
if(CardView* cv = dynamic_cast<CardView*>(card->shackled->view))
{
if(cv->mHasFocus)
{
if(!card->shackled->has(Constants::SHACKLER))
highlightborder->SetColor(ARGB(200,7,98,248));
else
highlightborder->SetColor(ARGB(200,57,28,248));
renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16);
} }
} }
} }

View File

@@ -211,6 +211,7 @@ void MTGCardInstance::initMTGCI()
storedCard = NULL; storedCard = NULL;
storedSourceCard = NULL; storedSourceCard = NULL;
myPair = NULL; myPair = NULL;
shackled = NULL;
miracle = false; miracle = false;
countTrini = 0; countTrini = 0;
imprintedCards.clear(); imprintedCards.clear();