Added HTR18, HT19, AFR and AFC sets, added/fixed old primitives, improved Android dowloader, fixed it lang file, fixed IMA rarities, fixed order index of some old sets, added all features from D&D such as Dungeon Cards and Dice (d20,d10, adn so on).

This commit is contained in:
Vittorio Alfieri
2021-07-17 02:33:08 +02:00
parent d98956a1b8
commit 31ab9edc81
43 changed files with 9693 additions and 1740 deletions
+29 -2
View File
@@ -145,6 +145,21 @@ void MTGPlayerCards::initDeck(MTGDeck * deck)
}
}
}
//dungeon init
if(deck->DungeonZone.size())
{
for(unsigned int j = 0; j < deck->DungeonZone.size(); j++)
{
string cardID = deck->DungeonZone[j];
MTGCard * card = MTGCollection()->getCardById(atoi(cardID.c_str()));
if(card)
{
MTGCardInstance * newCard = NEW MTGCardInstance(card, this);
//Dungeons will be added to sideboard zone...
sideboard->addCard(newCard);
}
}
}
}
MTGPlayerCards::~MTGPlayerCards()
@@ -412,14 +427,25 @@ MTGCardInstance * MTGPlayerCards::putInGraveyard(MTGCardInstance * card)
}
else if (card->getCurrentZone() != card->controller()->game->hand && (card->basicAbilities[(int)Constants::INPLAYDEATH] || card->basicAbilities[(int)Constants::INPLAYTAPDEATH]))
{
MTGCardInstance* ret = putInZone(card, card->getCurrentZone(), card->owner->game->battlefield);
if(card->basicAbilities[(int)Constants::INPLAYTAPDEATH])
bool toTap = card->basicAbilities[(int)Constants::INPLAYTAPDEATH];
bool addCounter = card->basicAbilities[(int)Constants::COUNTERDEATH];
MTGCardInstance* ret = putInZone(card, card->getCurrentZone(), card->owner->game->graveyard);
ret = putInZone(ret, ret->getCurrentZone(), ret->owner->game->battlefield);
if(toTap)
ret->tap(true);
if(addCounter)
ret->counters->addCounter(1, 1, false);
return ret;
}
return putInZone(card, card->currentZone, card->owner->game->graveyard);
}
// Moves a card to its owner's sideboard
MTGCardInstance * MTGPlayerCards::putInSideboard(MTGCardInstance * card)
{
return putInZone(card, card->currentZone, card->owner->game->sideboard);
}
// Moves a card to its owner's exile
MTGCardInstance * MTGPlayerCards::putInExile(MTGCardInstance * card)
{
@@ -836,6 +862,7 @@ MTGCardInstance * MTGGameZone::removeCard(MTGCardInstance * card, int createCopy
copy->basicAbilities[Constants::GAINEDEXILEDEATH] = card->basicAbilities[Constants::GAINEDEXILEDEATH];
copy->basicAbilities[Constants::GAINEDHANDDEATH] = card->basicAbilities[Constants::GAINEDHANDDEATH];
copy->basicAbilities[Constants::GAINEDDOUBLEFACEDEATH] = card->basicAbilities[Constants::GAINEDDOUBLEFACEDEATH];
copy->basicAbilities[Constants::DUNGEONCOMPLETED] = card->basicAbilities[Constants::DUNGEONCOMPLETED];
copy->damageInflictedAsCommander = card->damageInflictedAsCommander;
copy->numofcastfromcommandzone = card->numofcastfromcommandzone;
for (int i = 0; i < ManaCost::MANA_PAID_WITH_BESTOW +1; i++)