@@ -168,6 +168,7 @@ public:
|
||||
MTGCardInstance * myPair;
|
||||
MTGCardInstance * createSnapShot();
|
||||
MTGCardInstance * storedSourceCard;
|
||||
MTGCardInstance * shackled;
|
||||
MTGCardInstance * isDefenser();
|
||||
int initAttackersDefensers();
|
||||
MTGCardInstance * getNextOpponent(MTGCardInstance * previous=NULL);
|
||||
|
||||
@@ -248,11 +248,13 @@ class Constants
|
||||
CANTPAYLIFE = 126,
|
||||
CANTBESACRIFIED = 127,
|
||||
SKULK = 128,
|
||||
MENACE = 129,
|
||||
NOSOLO = 130,//cant attack alone
|
||||
MUSTBLOCK = 131,//blocks each turn
|
||||
DETHRONE = 132,
|
||||
NB_BASIC_ABILITIES = 133,
|
||||
MENACE = 129,
|
||||
NOSOLO = 130,//cant attack alone
|
||||
MUSTBLOCK = 131,//blocks each turn
|
||||
DETHRONE = 132,
|
||||
OVERLOAD = 133,
|
||||
SHACKLER = 134,
|
||||
NB_BASIC_ABILITIES = 135,
|
||||
|
||||
RARITY_S = 'S', //Special Rarity
|
||||
RARITY_M = 'M', //Mythics
|
||||
|
||||
@@ -2438,7 +2438,7 @@ int AIPlayerBaka::computeActions()
|
||||
cd.SetExclusionColor(Constants::MTG_COLOR_LAND);
|
||||
MTGCardInstance *freecard = cd.match(game->graveyard);
|
||||
int canCastCard = game->playRestrictions->canPutIntoZone(freecard, game->inPlay);
|
||||
if (freecard && (canCastCard == PlayRestriction::CAN_PLAY) && freecard->has(Constants::PAYZERO) && freecard->has(Constants::CANPLAYFROMGRAVEYARD) && (freecard->getIncreasedManaCost()->getConvertedCost() < 1) && (freecard->alias != 1111))
|
||||
if (freecard && (canCastCard == PlayRestriction::CAN_PLAY) && freecard->has(Constants::PAYZERO) && freecard->has(Constants::CANPLAYFROMGRAVEYARD) && (freecard->getIncreasedManaCost()->getConvertedCost() < 1) && (!freecard->isCDA))
|
||||
{
|
||||
MTGAbility * castFreeCard = observer->mLayers->actionLayer()->getAbility(MTGAbility::PAYZERO_COST);
|
||||
AIAction * aa = NEW AIAction(this, castFreeCard, freecard); //TODO putinplay action
|
||||
@@ -2453,7 +2453,7 @@ int AIPlayerBaka::computeActions()
|
||||
cd.SetExclusionColor(Constants::MTG_COLOR_LAND);
|
||||
MTGCardInstance *freecard = cd.match(game->exile);
|
||||
int canCastCard = game->playRestrictions->canPutIntoZone(freecard, game->inPlay);
|
||||
if (freecard && (canCastCard == PlayRestriction::CAN_PLAY) && freecard->has(Constants::PAYZERO) && freecard->has(Constants::CANPLAYFROMEXILE) && (freecard->getIncreasedManaCost()->getConvertedCost() < 1) && (freecard->alias != 1111))
|
||||
if (freecard && (canCastCard == PlayRestriction::CAN_PLAY) && freecard->has(Constants::PAYZERO) && freecard->has(Constants::CANPLAYFROMEXILE) && (freecard->getIncreasedManaCost()->getConvertedCost() < 1) && (!freecard->isCDA))
|
||||
{
|
||||
MTGAbility * castFreeCard = observer->mLayers->actionLayer()->getAbility(MTGAbility::PAYZERO_COST);
|
||||
AIAction * aa = NEW AIAction(this, castFreeCard, freecard); //TODO putinplay action
|
||||
|
||||
@@ -6533,6 +6533,8 @@ void AShackle::resolveShackle()
|
||||
previousController->game->putInZone(_target, _target->currentZone,
|
||||
source->controller()->game->inPlay);
|
||||
Shackled = _target;
|
||||
source->shackled = Shackled;
|
||||
Shackled->shackled = source;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6540,14 +6542,19 @@ void AShackle::returntoOwner(MTGCardInstance* _target) {
|
||||
MTGCardInstance * cardToReturn = _target;
|
||||
if(!cardToReturn)
|
||||
{
|
||||
if (source)
|
||||
source->shackled = NULL;
|
||||
this->forceDestroy = 1;
|
||||
return;
|
||||
}
|
||||
if(previousController && cardToReturn->isInPlay(game))
|
||||
{
|
||||
cardToReturn->shackled = NULL;
|
||||
cardToReturn->controller()->game->putInZone(_target, _target->currentZone,
|
||||
previousController->game->inPlay);
|
||||
}
|
||||
if (source)
|
||||
source->shackled = NULL;
|
||||
this->forceDestroy = 1;
|
||||
Shackled = NULL;
|
||||
return;
|
||||
|
||||
@@ -274,8 +274,32 @@ void CardGui::Render()
|
||||
{
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -386,7 +410,7 @@ void CardGui::Render()
|
||||
buff = "C";
|
||||
//if(card->has(Constants::PAYZERO))
|
||||
//buff += "Z";
|
||||
if(card->alias == 1000)
|
||||
if(card->chooseacolor >= 1)
|
||||
{
|
||||
if(card->chooseacolor == 1)
|
||||
buff += "\n-Green";
|
||||
@@ -1114,7 +1138,7 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder
|
||||
string cardsetname = setlist[card->setId].c_str();
|
||||
if(!noborder)
|
||||
{
|
||||
if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR")
|
||||
if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM")
|
||||
{
|
||||
//like white border
|
||||
renderer->FillRoundRect(x-92,pos.actY-130, (scale * quad->mWidth)-10, (scale * quad->mHeight)-11, 9.0f,ARGB(255,248,248,255));
|
||||
|
||||
@@ -122,7 +122,7 @@ void DeckMenu::RenderDeckManaColors()
|
||||
if (mSelectedDeck &&displayDeckMana)
|
||||
{
|
||||
string deckManaColors = mSelectedDeck->getColorIndex().c_str();
|
||||
if (deckManaColors.size() == 6)
|
||||
if (deckManaColors.size() >= 6)
|
||||
{
|
||||
// due to space constraints don't display icons for colorless mana.
|
||||
for( int colorIdx = Constants::MTG_COLOR_GREEN; colorIdx < Constants::MTG_COLOR_WASTE; ++colorIdx )
|
||||
|
||||
@@ -211,6 +211,7 @@ void MTGCardInstance::initMTGCI()
|
||||
storedCard = NULL;
|
||||
storedSourceCard = NULL;
|
||||
myPair = NULL;
|
||||
shackled = NULL;
|
||||
miracle = false;
|
||||
countTrini = 0;
|
||||
imprintedCards.clear();
|
||||
|
||||
@@ -159,11 +159,13 @@ const char* Constants::MTGBasicAbilities[] = {
|
||||
"combattoughness",
|
||||
"cantpaylife",
|
||||
"cantbesacrified",
|
||||
"skulk",
|
||||
"menace",
|
||||
"nosolo",
|
||||
"mustblock",
|
||||
"dethrone",
|
||||
"skulk",
|
||||
"menace",
|
||||
"nosolo",
|
||||
"mustblock",
|
||||
"dethrone",
|
||||
"overload",
|
||||
"shackler"
|
||||
};
|
||||
|
||||
map<string,int> Constants::MTGBasicAbilitiesMap;
|
||||
|
||||
@@ -951,7 +951,7 @@ void MTGInPlay::untapAll()
|
||||
{
|
||||
MTGCardInstance * card = cards[i];
|
||||
card->setUntapping();
|
||||
if (!card->basicAbilities[(int)Constants::DOESNOTUNTAP] && card->alias != 50120)
|
||||
if (!card->basicAbilities[(int)Constants::DOESNOTUNTAP] && !card->basicAbilities[(int)Constants::SHACKLER])
|
||||
{
|
||||
if (card->frozen < 1)
|
||||
{
|
||||
@@ -961,7 +961,6 @@ void MTGInPlay::untapAll()
|
||||
{
|
||||
card->frozen = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -705,7 +705,7 @@ PermanentAbility(observer, _id)
|
||||
|
||||
int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
||||
{
|
||||
if (card->alias == 11000)
|
||||
if (card->has(Constants::OVERLOAD))
|
||||
return 0;//overload has its own rule
|
||||
if(!card->getManaCost()->getAlternative())
|
||||
return 0;
|
||||
@@ -1431,7 +1431,7 @@ MTGAlternativeCostRule(observer, _id)
|
||||
|
||||
int MTGOverloadRule::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
||||
{
|
||||
if (card->alias != 11000)
|
||||
if (!card->has(Constants::OVERLOAD))
|
||||
return 0;
|
||||
if (card->isLand())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user