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

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

View File

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

View File

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

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

View File

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

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

View File

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

View File

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

View File

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