@@ -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);
|
||||||
|
|||||||
@@ -248,11 +248,13 @@ class Constants
|
|||||||
CANTPAYLIFE = 126,
|
CANTPAYLIFE = 126,
|
||||||
CANTBESACRIFIED = 127,
|
CANTBESACRIFIED = 127,
|
||||||
SKULK = 128,
|
SKULK = 128,
|
||||||
MENACE = 129,
|
MENACE = 129,
|
||||||
NOSOLO = 130,//cant attack alone
|
NOSOLO = 130,//cant attack alone
|
||||||
MUSTBLOCK = 131,//blocks each turn
|
MUSTBLOCK = 131,//blocks each turn
|
||||||
DETHRONE = 132,
|
DETHRONE = 132,
|
||||||
NB_BASIC_ABILITIES = 133,
|
OVERLOAD = 133,
|
||||||
|
SHACKLER = 134,
|
||||||
|
NB_BASIC_ABILITIES = 135,
|
||||||
|
|
||||||
RARITY_S = 'S', //Special Rarity
|
RARITY_S = 'S', //Special Rarity
|
||||||
RARITY_M = 'M', //Mythics
|
RARITY_M = 'M', //Mythics
|
||||||
|
|||||||
@@ -2438,7 +2438,7 @@ int AIPlayerBaka::computeActions()
|
|||||||
cd.SetExclusionColor(Constants::MTG_COLOR_LAND);
|
cd.SetExclusionColor(Constants::MTG_COLOR_LAND);
|
||||||
MTGCardInstance *freecard = cd.match(game->graveyard);
|
MTGCardInstance *freecard = cd.match(game->graveyard);
|
||||||
int canCastCard = game->playRestrictions->canPutIntoZone(freecard, game->inPlay);
|
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);
|
MTGAbility * castFreeCard = observer->mLayers->actionLayer()->getAbility(MTGAbility::PAYZERO_COST);
|
||||||
AIAction * aa = NEW AIAction(this, castFreeCard, freecard); //TODO putinplay action
|
AIAction * aa = NEW AIAction(this, castFreeCard, freecard); //TODO putinplay action
|
||||||
@@ -2453,7 +2453,7 @@ int AIPlayerBaka::computeActions()
|
|||||||
cd.SetExclusionColor(Constants::MTG_COLOR_LAND);
|
cd.SetExclusionColor(Constants::MTG_COLOR_LAND);
|
||||||
MTGCardInstance *freecard = cd.match(game->exile);
|
MTGCardInstance *freecard = cd.match(game->exile);
|
||||||
int canCastCard = game->playRestrictions->canPutIntoZone(freecard, game->inPlay);
|
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);
|
MTGAbility * castFreeCard = observer->mLayers->actionLayer()->getAbility(MTGAbility::PAYZERO_COST);
|
||||||
AIAction * aa = NEW AIAction(this, castFreeCard, freecard); //TODO putinplay action
|
AIAction * aa = NEW AIAction(this, castFreeCard, freecard); //TODO putinplay action
|
||||||
|
|||||||
@@ -6533,6 +6533,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6540,14 +6542,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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -386,7 +410,7 @@ void CardGui::Render()
|
|||||||
buff = "C";
|
buff = "C";
|
||||||
//if(card->has(Constants::PAYZERO))
|
//if(card->has(Constants::PAYZERO))
|
||||||
//buff += "Z";
|
//buff += "Z";
|
||||||
if(card->alias == 1000)
|
if(card->chooseacolor >= 1)
|
||||||
{
|
{
|
||||||
if(card->chooseacolor == 1)
|
if(card->chooseacolor == 1)
|
||||||
buff += "\n-Green";
|
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();
|
string cardsetname = setlist[card->setId].c_str();
|
||||||
if(!noborder)
|
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
|
//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));
|
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)
|
if (mSelectedDeck &&displayDeckMana)
|
||||||
{
|
{
|
||||||
string deckManaColors = mSelectedDeck->getColorIndex().c_str();
|
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.
|
// due to space constraints don't display icons for colorless mana.
|
||||||
for( int colorIdx = Constants::MTG_COLOR_GREEN; colorIdx < Constants::MTG_COLOR_WASTE; ++colorIdx )
|
for( int colorIdx = Constants::MTG_COLOR_GREEN; colorIdx < Constants::MTG_COLOR_WASTE; ++colorIdx )
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -159,11 +159,13 @@ const char* Constants::MTGBasicAbilities[] = {
|
|||||||
"combattoughness",
|
"combattoughness",
|
||||||
"cantpaylife",
|
"cantpaylife",
|
||||||
"cantbesacrified",
|
"cantbesacrified",
|
||||||
"skulk",
|
"skulk",
|
||||||
"menace",
|
"menace",
|
||||||
"nosolo",
|
"nosolo",
|
||||||
"mustblock",
|
"mustblock",
|
||||||
"dethrone",
|
"dethrone",
|
||||||
|
"overload",
|
||||||
|
"shackler"
|
||||||
};
|
};
|
||||||
|
|
||||||
map<string,int> Constants::MTGBasicAbilitiesMap;
|
map<string,int> Constants::MTGBasicAbilitiesMap;
|
||||||
|
|||||||
@@ -951,7 +951,7 @@ void MTGInPlay::untapAll()
|
|||||||
{
|
{
|
||||||
MTGCardInstance * card = cards[i];
|
MTGCardInstance * card = cards[i];
|
||||||
card->setUntapping();
|
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)
|
if (card->frozen < 1)
|
||||||
{
|
{
|
||||||
@@ -961,7 +961,6 @@ void MTGInPlay::untapAll()
|
|||||||
{
|
{
|
||||||
card->frozen = 0;
|
card->frozen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -705,7 +705,7 @@ PermanentAbility(observer, _id)
|
|||||||
|
|
||||||
int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
||||||
{
|
{
|
||||||
if (card->alias == 11000)
|
if (card->has(Constants::OVERLOAD))
|
||||||
return 0;//overload has its own rule
|
return 0;//overload has its own rule
|
||||||
if(!card->getManaCost()->getAlternative())
|
if(!card->getManaCost()->getAlternative())
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1431,7 +1431,7 @@ MTGAlternativeCostRule(observer, _id)
|
|||||||
|
|
||||||
int MTGOverloadRule::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
int MTGOverloadRule::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
||||||
{
|
{
|
||||||
if (card->alias != 11000)
|
if (!card->has(Constants::OVERLOAD))
|
||||||
return 0;
|
return 0;
|
||||||
if (card->isLand())
|
if (card->isLand())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user