public TheGreatForestPlane() { this.setName("Plane - The Great Forest"); this.setExpansionSetCodeForImage("PCA"); // Each creature assigns combat damage equal to its toughness rather than its power Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TheGreatForestCombatDamageRuleEffect()); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, creatures you control get +0/+2 and gain trample until end of turn Effect chaosEffect = new BoostControlledEffect(0, 2, Duration.EndOfTurn); Target chaosTarget = null; Effect chaosEffect2 = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn); Target chaosTarget2 = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); chaosEffects.add(chaosEffect2); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); chaosTargets.add(chaosTarget2); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public UndercityReachesPlane() { this.setName("Plane - Undercity Reaches"); this.setExpansionSetCodeForImage("PCA"); // Whenever a creature deals combat damage to a player, its controller may a draw a card Ability ability = new UndercityReachesTriggeredAbility(); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, reveal the top three cards of your library. Put all creature cards revealed this way into your hand and the rest into your graveyard. Effect chaosEffect = new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.EndOfGame, HandSizeModification.SET); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public FieldsOfSummerPlane() { this.setName("Plane - Fields of Summer"); this.setExpansionSetCodeForImage("PCA"); // Whenever a player casts a spell, that player may gain 2 life SpellCastAllTriggeredAbility ability = new SpellCastAllTriggeredAbility(Zone.COMMAND, new FieldsOfSummerEffect(), filter, false, SetTargetPointer.PLAYER); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, you may gain 10 life Effect chaosEffect = new GainLifeEffect(10); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public AcademyAtTolariaWestPlane() { this.setName("Plane - Academy at Tolaria West"); this.setExpansionSetCodeForImage("PCA"); // At the beginning of your end step, if you have 0 cards in hand, draw seven cards Ability ability = new BeginningOfEndStepTriggeredAbility(Zone.COMMAND, new DrawCardsActivePlayerEffect(7), TargetController.ANY, HellbentAPCondition.instance, false); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, discard your hand Effect chaosEffect = new DiscardHandControllerEffect(); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public TheDarkBaronyPlane() { this.setName("Plane - The Dark Barony"); this.setExpansionSetCodeForImage("PCA"); // Whenever a nonblack card is put into a player's graveyard from anywhere, that player loses 1 life Ability ability = new PutCardIntoGraveFromAnywhereAllTriggeredAbility(Zone.COMMAND, new LoseLifeTargetEffect(1), false, filter, TargetController.ANY, SetTargetPointer.PLAYER); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, each player dicards a card Effect chaosEffect = new DiscardEachPlayerEffect(TargetController.OPPONENT); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public TurriIslandPlane() { this.setName("Plane - Turri Island"); this.setExpansionSetCodeForImage("PCA"); // Creature spells cost {2} less to cast. Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TurriIslandEffect(2)); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, reveal the top three cards of your library. Put all creature cards revealed this way into your hand and the rest into your graveyard. Effect chaosEffect = new RevealLibraryPutIntoHandEffect(3, new FilterCreatureCard("creature cards"), Zone.GRAVEYARD); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public LetheLakePlane() { this.setName("Plane - Lethe Lake"); this.setExpansionSetCodeForImage("PCA"); // At the beginning of your upkeep, put the top ten cards of your libary into your graveyard Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, new PutLibraryIntoGraveTargetEffect(10).setText("that player puts the top 10 cards of their library into their graveyard"), TargetController.ANY, false, true); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, target player puts the top ten cards of his or her library into his or her graveyard Effect chaosEffect = new PutTopCardOfLibraryIntoGraveTargetEffect(10); Target chaosTarget = new TargetPlayer(); List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public AkoumPlane() { this.setName("Plane - Akoum"); this.setExpansionSetCodeForImage("PCA"); // Players may cast enchantment spells as if they had flash SimpleStaticAbility ability = new SimpleStaticAbility(Zone.COMMAND, new CastAsThoughItHadFlashAllEffect(Duration.Custom, filterCard, true)); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, destroy target creature that isn't enchanted Effect chaosEffect = new DestroyTargetEffect("destroy target creature that isn't enchanted"); Target chaosTarget = new TargetCreaturePermanent(filter); List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public HedronFieldsOfAgadeemPlane() { this.setName("Plane - Hedron Fields of Agadeem"); this.setExpansionSetCodeForImage("PCA"); // Creatures with power 7 or greater can't attack or block Ability ability = new SimpleStaticAbility(Zone.COMMAND, new HedronFieldsOfAgadeemRestrictionEffect()); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, create a 7/7 colorless Eldrazi creature with annhilator 1 Effect chaosEffect = new CreateTokenEffect(new EldraziAnnihilatorToken()); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public EdgeOfMalacolPlane() { this.setName("Plane - Edge Of Malacol"); this.setExpansionSetCodeForImage("PCA"); // If a creature you control would untap during your untap step, put two +1/+1 counters on it instead. SimpleStaticAbility ability = new SimpleStaticAbility(Zone.COMMAND, new EdgeOfMalacolEffect()); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, untap each creature you control Effect chaosEffect = new UntapAllControllerEffect(new FilterControlledCreaturePermanent(), "untap each creature you control"); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public FeedingGroundsPlane() { this.setName("Plane - Feeding Grounds"); this.setExpansionSetCodeForImage("PCA"); // Red spells cost {1} less to cast. Green spells cost {1} less to cast Ability ability = new SimpleStaticAbility(Zone.COMMAND, new FeedingGroundsEffect()); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, target red or green creature gets X +1/+1 counters Effect chaosEffect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(), TargetConvertedManaCost.instance); Target chaosTarget = new TargetCreaturePermanent(1, 1, filter, false); List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public TheEonFogPlane() { this.setName("Plane - The Eon Fog"); this.setExpansionSetCodeForImage("PCA"); // All players miss their untap step Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TheEonFogSkipUntapStepEffect(Duration.Custom, true)); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, untap all permanents you control Effect chaosEffect = new UntapAllControllerEffect(new FilterControlledPermanent()); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public NayaPlane() { this.setName("Plane - Naya"); this.setExpansionSetCodeForImage("PCA"); // You may play any number of lands on each of your turns Ability ability = new SimpleStaticAbility(Zone.COMMAND, new PlayAdditionalLandsAllEffect(Integer.MAX_VALUE)); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, target red, green or white creature you control gets +1/+1 until end of turn for each land you control DynamicValue dynamicValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LANDS); Effect chaosEffect = new BoostTargetEffect(dynamicValue, dynamicValue, Duration.EndOfTurn); Target chaosTarget = new TargetControlledCreaturePermanent(1, 1, filter, false); List<Effect> chaosEffects = new ArrayList<>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public TazeemPlane() { this.setName("Plane - Tazeem"); this.setExpansionSetCodeForImage("PCA"); // Creatures can't block Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TazeemCantBlockAllEffect()); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, draw a card for each land you control Effect chaosEffect = new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent())); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public TrailOfTheMageRingsPlane() { this.setName("Plane - Trail of the Mage-Rings"); this.setExpansionSetCodeForImage("PCA"); // Instant and sorcery spells have rebound Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TrailOfTheMageRingsReboundEffect()); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, you may search your library for an instant or sorcery card, reveal it, put it into your hand, then shuffle your library Effect chaosEffect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, new FilterInstantOrSorceryCard()), true, true); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public PanopticonPlane() { this.setName("Plane - Panopticon"); this.setExpansionSetCodeForImage("PCA"); // At the beginning of your draw step, draw an additional card. Ability ability = new BeginningOfDrawTriggeredAbility(new DrawCardTargetEffect(1), TargetController.ANY, false); this.getAbilities().add(ability); Ability pwability = new PanopticonTriggeredAbility(new DrawCardTargetEffect(1)); this.getAbilities().add(pwability); // Active player can roll the planar die: Whenever you roll {CHAOS}, draw a card Effect chaosEffect = new DrawCardSourceControllerEffect(1); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public AgyremPlane() { this.setName("Plane - Agyrem"); this.setExpansionSetCodeForImage("PCA"); // Whenever a white creature dies, return it to the battlefield under its owner's control at the beginning of the next end step DiesCreatureTriggeredAbility ability = new DiesCreatureTriggeredAbility(Zone.COMMAND, new AgyremEffect(), false, filterWhite, true); this.getAbilities().add(ability); DiesCreatureTriggeredAbility ability2 = new DiesCreatureTriggeredAbility(Zone.COMMAND, new AgyremEffect2(), false, filterNonWhite, true); this.getAbilities().add(ability2); // Active player can roll the planar die: Whenever you roll {CHAOS}, creatures can't attack you until a player planeswalks Effect chaosEffect = new AgyremRestrictionEffect(); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId())));
public AstralArenaPlane() { this.setName("Plane - Astral Arena"); this.setExpansionSetCodeForImage("PCA"); // No more than one creature can attack each turn. No more than one creature can block each turn. SimpleStaticAbility ability = new SimpleStaticAbility(Zone.COMMAND, new AstralArenaAttackRestrictionEffect()); ability.addWatcher(new AttackedThisTurnWatcher()); SimpleStaticAbility ability2 = new SimpleStaticAbility(Zone.COMMAND, new AstralArenaBlockRestrictionEffect()); ability2.addWatcher(new AttackedThisTurnWatcher()); this.getAbilities().add(ability); this.getAbilities().add(ability2); // Active player can roll the planar die: Whenever you roll {CHAOS}, {this} deals 2 damage to each creature Effect chaosEffect = new DamageAllEffect(2, new FilterCreaturePermanent()); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }
public TrugaJunglePlane() { this.setName("Plane - Truga Jungle"); this.setExpansionSetCodeForImage("PCA"); SimpleStaticAbility ability = new SimpleStaticAbility(Zone.COMMAND, new ConditionalContinuousEffect( new GainAbilityAllEffect(new AnyColorManaAbility(), Duration.Custom, StaticFilters.FILTER_LANDS), new IsStillOnPlaneCondition(this.getName()), rule)); this.getAbilities().add(ability); // Active player can roll the planar die: Whenever you roll {CHAOS}, reveal the top three cards of your libary. Put all land cards revealed this way into your hand the rest on the bottom of your library in any order. Effect chaosEffect = new RevealLibraryPutIntoHandEffect(3, new FilterLandCard(), Zone.LIBRARY); Target chaosTarget = null; List<Effect> chaosEffects = new ArrayList<Effect>(); chaosEffects.add(chaosEffect); List<Target> chaosTargets = new ArrayList<Target>(); chaosTargets.add(chaosTarget); ActivateIfConditionActivatedAbility chaosAbility = new ActivateIfConditionActivatedAbility(Zone.COMMAND, new RollPlanarDieEffect(chaosEffects, chaosTargets), new GenericManaCost(0), MainPhaseStackEmptyCondition.instance); chaosAbility.addWatcher(new PlanarRollWatcher()); this.getAbilities().add(chaosAbility); chaosAbility.setMayActivate(TargetController.ANY); this.getAbilities().add(new SimpleStaticAbility(Zone.ALL, new PlanarDieRollCostIncreasingEffect(chaosAbility.getOriginalId()))); } }