Improved target chooser to allow a multiple selection for player, creature and planeswalkers, now it's possible to use target(player,creature,planeswalkers) as well as target(<variable>player,creature,planeswalkers) and so on. Added abilities for giving exiledeath and handdeath to instant and sorceries (the previous were not working fine), Added ability to identify the cards with Cycling ability as a target, Updated all primitives with cycling ability, fixed all primitives with choose any target ability, Added/fixed primitives from RIX set.

This commit is contained in:
valfieri
2020-12-18 19:04:51 +01:00
parent 0d2e4af2a3
commit e67078355a
11 changed files with 722 additions and 429 deletions

View File

@@ -4925,7 +4925,9 @@ int AbilityFactory::abilityEfficiency(MTGAbility * a, Player * p, int mode, Targ
badAbilities[(int)Constants::NOMANA] = true;
badAbilities[(int)Constants::ONLYMANA] = true;
badAbilities[(int)Constants::EXILEDEATH] = true;
badAbilities[(int)Constants::GAINEDEXILEDEATH] = true;
badAbilities[(int)Constants::HANDDEATH] = true;
badAbilities[(int)Constants::GAINEDHANDDEATH] = true;
badAbilities[(int)Constants::INPLAYDEATH] = true;
badAbilities[(int)Constants::INPLAYTAPDEATH] = true;
badAbilities[(int)Constants::WEAK] = true;
@@ -5741,12 +5743,14 @@ void AbilityFactory::addAbilities(int _id, Spell * spell)
{
MTGPlayerCards * zones = card->controller()->game;
MTGPlayerCards * Endzones = card->owner->game;//put them in thier owners respective zones as per rules.
if (card->basicAbilities[(int)Constants::EXILEDEATH])
if (card->basicAbilities[(int)Constants::EXILEDEATH] || card->basicAbilities[(int)Constants::GAINEDEXILEDEATH])
{
card->basicAbilities[(int)Constants::GAINEDEXILEDEATH] = 0;
card->controller()->game->putInZone(card, card->getCurrentZone(), card->owner->game->exile);
}
else if (card->basicAbilities[(int)Constants::HANDDEATH])
else if (card->basicAbilities[(int)Constants::HANDDEATH] || card->basicAbilities[(int)Constants::GAINEDHANDDEATH])
{
card->basicAbilities[(int)Constants::GAINEDHANDDEATH] = 0;
card->controller()->game->putInZone(card, card->getCurrentZone(), card->owner->game->hand);
}
else if (card->alternateCostPaid[ManaCost::MANA_PAID_WITH_BUYBACK] > 0)