From dd38cc11256c01126f258a9ab723d074d930e227 Mon Sep 17 00:00:00 2001
From: Evan Kranzler <theelk801@gmail.com>
Date: Mon, 3 Sep 2018 00:13:19 -0400
Subject: [PATCH] Implemented Conclave Tribunal

---
 .../src/mage/cards/c/ConclaveTribunal.java    | 55 +++++++++++++++++++
 Mage.Sets/src/mage/sets/GuildsOfRavnica.java  |  1 +
 2 files changed, 56 insertions(+)
 create mode 100644 Mage.Sets/src/mage/cards/c/ConclaveTribunal.java

diff --git a/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java b/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java
new file mode 100644
index 0000000000..d06e3d72f8
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java
@@ -0,0 +1,55 @@
+package mage.cards.c;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
+import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
+import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
+import mage.abilities.keyword.ConvokeAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.TargetController;
+import mage.filter.common.FilterNonlandPermanent;
+import mage.filter.predicate.permanent.ControllerPredicate;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author TheElk801
+ */
+public final class ConclaveTribunal extends CardImpl {
+
+    private final static FilterNonlandPermanent filter = new FilterNonlandPermanent();
+
+    static {
+        filter.add(new ControllerPredicate(TargetController.OPPONENT));
+    }
+
+    public ConclaveTribunal(UUID ownerId, CardSetInfo setInfo) {
+        super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}");
+
+        // Convoke
+        this.addAbility(new ConvokeAbility());
+
+        // When Conclave Tribunal enters the battlefield, exile target nonland permanent an opponent controls until Conclave Tribunal leaves the battlefield.
+        Ability ability = new EntersBattlefieldTriggeredAbility(
+                new ExileUntilSourceLeavesEffect(filter.getMessage())
+        );
+        ability.addTarget(new TargetPermanent(filter));
+        ability.addEffect(new CreateDelayedTriggeredAbilityEffect(
+                new OnLeaveReturnExiledToBattlefieldAbility())
+        );
+        this.addAbility(ability);
+    }
+
+    public ConclaveTribunal(final ConclaveTribunal card) {
+        super(card);
+    }
+
+    @Override
+    public ConclaveTribunal copy() {
+        return new ConclaveTribunal(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/GuildsOfRavnica.java b/Mage.Sets/src/mage/sets/GuildsOfRavnica.java
index 0ac1cfe985..c1b0b6840c 100644
--- a/Mage.Sets/src/mage/sets/GuildsOfRavnica.java
+++ b/Mage.Sets/src/mage/sets/GuildsOfRavnica.java
@@ -23,6 +23,7 @@ public final class GuildsOfRavnica extends ExpansionSet {
         this.ratioBoosterMythic = 8;
 
         cards.add(new SetCardInfo("Boros Challenger", 156, Rarity.UNCOMMON, mage.cards.b.BorosChallenger.class));
+        cards.add(new SetCardInfo("Conclave Tribunal", 6, Rarity.UNCOMMON, mage.cards.c.ConclaveTribunal.class));
         cards.add(new SetCardInfo("Emmara, Soul of the Accord", 168, Rarity.RARE, mage.cards.e.EmmaraSoulOfTheAccord.class));
         cards.add(new SetCardInfo("Firemind's Research", 171, Rarity.RARE, mage.cards.f.FiremindsResearch.class));
         cards.add(new SetCardInfo("Impervious Greatwurm", 273, Rarity.MYTHIC, mage.cards.i.ImperviousGreatwurm.class));