Fixed some primitives from issue #1085, fixed some primitived from Discord channel, updated some AI decks, added new ability "canloyaltyasinst" to allow a planeswalker to activate loyalty abilities as instant (e.g. "The Wandering Emperor"), fixed a possible crash when a card change zone with different card types than its original version (e.g. morphed cards).
This commit is contained in:
@@ -7285,11 +7285,11 @@ int ActivatedAbility::isReactingToClick(MTGCardInstance * card, ManaCost * mana)
|
||||
howMany += check->counters;
|
||||
}
|
||||
}
|
||||
if(howMany > 1 && card->has(Constants::CANLOYALTYTWICE))
|
||||
if(howMany > 1)
|
||||
return 0;
|
||||
if (player != game->currentPlayer)
|
||||
if (player != game->currentPlayer && !card->has(Constants::CANLOYALTYASINST))
|
||||
return 0;
|
||||
if (!turnSide && (cPhase != MTG_PHASE_FIRSTMAIN && cPhase != MTG_PHASE_SECONDMAIN))
|
||||
if (!turnSide && !card->has(Constants::CANLOYALTYASINST) && (cPhase != MTG_PHASE_FIRSTMAIN && cPhase != MTG_PHASE_SECONDMAIN))
|
||||
return 0;
|
||||
}
|
||||
if (source->has(Constants::NOACTIVATED) || (source->mutation && source->parentCards.size() > 0)) // Mutated Over/Under card doesn't have to react to click anymore
|
||||
|
||||
@@ -266,7 +266,8 @@ const char* Constants::MTGBasicAbilities[] = {
|
||||
"poisoneighttoxic", // Card has toxic 8
|
||||
"poisonninetoxic", // Card has toxic 9
|
||||
"poisontentoxic", // Card has toxic 10
|
||||
"eqpasinst" // Can equip as instant
|
||||
"eqpasinst", // Can equip as instant
|
||||
"canloyaltyasinst" // Can activate loyalty abilities as instant (e.g. "The Wandering Emperor").
|
||||
};
|
||||
|
||||
map<string,int> Constants::MTGBasicAbilitiesMap;
|
||||
|
||||
@@ -580,7 +580,7 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
|
||||
// This fix issue types problem when card change zone with different card types than its original version (e.g. double face cards or cards that gained new types before to change zone).
|
||||
std::vector<int> realTypes;
|
||||
string realName = copy->name;
|
||||
if(doCopy && !asCopy && !inplaytoinplay && !equal(copy->types.begin(), copy->types.end(), card->types.begin()) ){
|
||||
if(doCopy && !asCopy && !inplaytoinplay && !card->isMorphed && ((copy->types.size() != card->types.size()) || ((copy->types.size() == card->types.size()) && (!equal(copy->types.begin(), copy->types.end(), card->types.begin())))) ){
|
||||
realTypes = copy->types;
|
||||
copy->types = card->types;
|
||||
copy->mPropertiesChangedSinceLastUpdate = false;
|
||||
|
||||
Reference in New Issue
Block a user