[REX] Implement Ian Malcolm, Chaotician (#12117)

* Start on Ian Malcolm, Chaotician, missing key effects

* fox ANY clause in DrawNthCardTriggeredAbility

* Get exile effect working

* Start using Evelyn, the Covetous code

* align exile effect

* align player clause

* align card type clause

* align counter check clause

* align mana clause

* add ownership clause

* remove redundant comments

* fix redundant mana clause description

* fix counter clause in mana cost effect

* fix active clause in mana effect

* use MageObjectReference to associate exiled cards with an Ian Malcolm instance

* optimize imports

* Start tests, failing currently

* fix test and add blink test

* fix signature of constructor

* fix order of super() call in checkTrigger

* clarify hash maps in watcher

* use correct AsThoughEffect

* document header of checkExile

* generalize modal and double faced cards for LKI fetch

* remove land played event for watcher

* Use custom MageIdentifier to filter usedMap
This commit is contained in:
jimga150 2024-04-22 23:58:05 -04:00 committed by GitHub
parent f8f9b0caa0
commit 40143c648f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 398 additions and 1 deletions

View file

@ -42,7 +42,7 @@ public class DrawNthCardTriggeredAbility extends TriggeredAbilityImpl {
setTriggerPhrase(generateTriggerPhrase());
}
private DrawNthCardTriggeredAbility(final DrawNthCardTriggeredAbility ability) {
protected DrawNthCardTriggeredAbility(final DrawNthCardTriggeredAbility ability) {
super(ability);
this.targetController = ability.targetController;
this.cardNumber = ability.cardNumber;
@ -72,6 +72,9 @@ public class DrawNthCardTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
break;
case ANY:
// Doesn't matter who
break;
default:
throw new IllegalArgumentException("TargetController " + targetController + " not supported");
}
@ -87,6 +90,8 @@ public class DrawNthCardTriggeredAbility extends TriggeredAbilityImpl {
return "Whenever a player draws their " + CardUtil.numberToOrdinalText(cardNumber) + " card during their turn, ";
case OPPONENT:
return "Whenever an opponent draws their " + CardUtil.numberToOrdinalText(cardNumber) + " card each turn, ";
case ANY:
return "Whenever a player draws their " + CardUtil.numberToOrdinalText(cardNumber) + " card each turn, ";
default:
throw new IllegalArgumentException("TargetController " + targetController + " not supported");
}