Merge pull request #11 from WagicProject/master

got it
This commit is contained in:
zethfoxster
2016-07-06 17:57:38 -04:00
committed by GitHub
10 changed files with 56 additions and 20 deletions

View File

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

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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));

View File

@@ -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 )

View File

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

View File

@@ -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;

View File

@@ -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;
}
}
}
}

View File

@@ -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())
{