Implemented "Battle" type from MOM set (they are like planeswalkers), added some new primitives from MOM set, fixed some primitives targeting any target.

This commit is contained in:
Vittorio Alfieri
2023-05-11 15:57:08 +02:00
parent f395274c0b
commit 6ef8b45709
15 changed files with 225 additions and 44 deletions
+11
View File
@@ -1184,6 +1184,8 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
intValue++;
if(card->hasType(Subtypes::TYPE_ARTIFACT))
intValue++;
if(card->hasType(Subtypes::TYPE_BATTLE))
intValue++;
}
}
else if (s == "pcycledcount" || s == "ocycledcount") //return how may cards have been cycled this turn from a specific player.
@@ -1258,6 +1260,8 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
cc = 1;
if(cardHasTypeinZone("artifact",checkZone))
ac = 1;
if(cardHasTypeinZone("battle",checkZone))
ac = 1;
}
} else {
MTGGameZone * checkZone = (s.find("oppbattlefieldcardtypes")!=string::npos)?card->getObserver()->opponent()->game->inPlay:card->controller()->game->inPlay;
@@ -1277,6 +1281,8 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
cc = 1;
if(cardHasTypeinZone("artifact",checkZone))
ac = 1;
if(cardHasTypeinZone("battle",checkZone))
ac = 1;
}
intValue = pc+tc+sc+lc+ic+ec+cc+ac;
}
@@ -1303,6 +1309,8 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
cc = 1;
if(cardHasTypeinZone("artifact",checkZone))
ac = 1;
if(cardHasTypeinZone("battle",checkZone))
ac = 1;
}
} else {
MTGGameZone * checkZone = (s.find("oppgravecardtypes")!=string::npos)?card->getObserver()->opponent()->game->graveyard:card->controller()->game->graveyard;
@@ -1322,6 +1330,8 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
cc = 1;
if(cardHasTypeinZone("artifact",checkZone))
ac = 1;
if(cardHasTypeinZone("battle",checkZone))
ac = 1;
}
intValue = pc+tc+sc+lc+ic+ec+cc+ac;
}
@@ -1334,6 +1344,7 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
(s.find("totcntart") != string::npos && card->controller()->game->inPlay->cards[j]->hasType(Subtypes::TYPE_ARTIFACT)) ||
(s.find("totcntenc") != string::npos && card->controller()->game->inPlay->cards[j]->hasType(Subtypes::TYPE_ENCHANTMENT)) ||
(s.find("totcntlan") != string::npos && card->controller()->game->inPlay->cards[j]->hasType(Subtypes::TYPE_LAND)) ||
(s.find("totcntbat") != string::npos && card->controller()->game->inPlay->cards[j]->hasType(Subtypes::TYPE_BATTLE)) ||
s.find("totcntall") != string::npos){
if (card->controller()->game->inPlay->cards[j]->counters){
Counters * counters = card->controller()->game->inPlay->cards[j]->counters;