diff --git a/Mage.Sets/src/mage/cards/c/CuratorOfSunsCreation.java b/Mage.Sets/src/mage/cards/c/CuratorOfSunsCreation.java
new file mode 100644
index 00000000000..bb9caefb5c7
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/c/CuratorOfSunsCreation.java
@@ -0,0 +1,83 @@
+package mage.cards.c;
+
+import mage.MageInt;
+import mage.abilities.TriggeredAbilityImpl;
+import mage.abilities.effects.keyword.DiscoverEffect;
+import mage.abilities.hint.StaticHint;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.SubType;
+import mage.constants.Zone;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+
+import java.util.UUID;
+
+/**
+ * @author Susucr
+ */
+public final class CuratorOfSunsCreation extends CardImpl {
+
+ public CuratorOfSunsCreation(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
+
+ this.subtype.add(SubType.HUMAN);
+ this.subtype.add(SubType.ARTIFICER);
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(3);
+
+ // Whenever you discover, discover again for the same value. This ability triggers only once per turn.
+ this.addAbility(new CuratorOfSunsCreationTriggeredAbility());
+ }
+
+ private CuratorOfSunsCreation(final CuratorOfSunsCreation card) {
+ super(card);
+ }
+
+ @Override
+ public CuratorOfSunsCreation copy() {
+ return new CuratorOfSunsCreation(this);
+ }
+}
+
+class CuratorOfSunsCreationTriggeredAbility extends TriggeredAbilityImpl {
+
+ CuratorOfSunsCreationTriggeredAbility() {
+ super(Zone.BATTLEFIELD, null, false);
+ setTriggersOnceEachTurn(true);
+ }
+
+ private CuratorOfSunsCreationTriggeredAbility(final CuratorOfSunsCreationTriggeredAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public CuratorOfSunsCreationTriggeredAbility copy() {
+ return new CuratorOfSunsCreationTriggeredAbility(this);
+ }
+
+ @Override
+ public boolean checkEventType(GameEvent event, Game game) {
+ return event.getType() == GameEvent.EventType.DISCOVER;
+ }
+
+ @Override
+ public boolean checkTrigger(GameEvent event, Game game) {
+ if (!event.getPlayerId().equals(getControllerId())) {
+ return false;
+ }
+
+ int amount = event.getAmount();
+ this.getEffects().clear();
+ this.getEffects().add(new DiscoverEffect(amount));
+ this.getHints().clear();
+ this.getHints().add(new StaticHint("Discover amount: " + amount));
+ return true;
+ }
+
+ @Override
+ public String getRule() {
+ return "Whenever you discover, discover again for the same value.";
+ }
+}
\ No newline at end of file
diff --git a/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java b/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java
index a389e937633..625273c7f92 100644
--- a/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java
+++ b/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java
@@ -55,6 +55,7 @@ public final class TheLostCavernsOfIxalan extends ExpansionSet {
cards.add(new SetCardInfo("Cosmium Confluence", 181, Rarity.RARE, mage.cards.c.CosmiumConfluence.class));
cards.add(new SetCardInfo("Cosmium Kiln", 6, Rarity.UNCOMMON, mage.cards.c.CosmiumKiln.class));
cards.add(new SetCardInfo("Council of Echoes", 51, Rarity.UNCOMMON, mage.cards.c.CouncilOfEchoes.class));
+ cards.add(new SetCardInfo("Curator of Sun's Creation", 141, Rarity.UNCOMMON, mage.cards.c.CuratorOfSunsCreation.class));
cards.add(new SetCardInfo("Dauntless Dismantler", 8, Rarity.UNCOMMON, mage.cards.d.DauntlessDismantler.class));
cards.add(new SetCardInfo("Deep-Cavern Bat", 102, Rarity.UNCOMMON, mage.cards.d.DeepCavernBat.class));
cards.add(new SetCardInfo("Deepfathom Echo", 228, Rarity.RARE, mage.cards.d.DeepfathomEcho.class));
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/lci/CuratorOfSunsCreationTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/lci/CuratorOfSunsCreationTest.java
new file mode 100644
index 00000000000..6620710b5e6
--- /dev/null
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/lci/CuratorOfSunsCreationTest.java
@@ -0,0 +1,45 @@
+package org.mage.test.cards.single.lci;
+
+import mage.constants.PhaseStep;
+import mage.constants.Zone;
+import org.junit.Test;
+import org.mage.test.serverside.base.CardTestPlayerBase;
+
+/**
+ * @author Susucr
+ */
+public class CuratorOfSunsCreationTest extends CardTestPlayerBase {
+
+ /**
+ * {@link mage.cards.c.CuratorOfSunsCreation}
+ * Curator of Sun's Creation {3}{R}
+ * Creature — Human Artificer
+ * Whenever you discover, discover again for the same value. This ability triggers only once each turn.
+ * 3/3
+ */
+ private static final String curator = "Curator of Sun's Creation";
+
+ @Test
+ public void test_trigger() {
+ setStrictChooseMode(true);
+ skipInitShuffling();
+
+ addCard(Zone.BATTLEFIELD, playerA, curator);
+ addCard(Zone.HAND, playerA, "Trumpeting Carnosaur"); // {4}{R}{R}, etb discover 5
+ addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6);
+
+ addCard(Zone.LIBRARY, playerA, "Grizzly Bears", 3); // 2/2 for 2
+ addCard(Zone.LIBRARY, playerA, "Grave Titan"); // cost too much for discover 5
+ addCard(Zone.LIBRARY, playerA, "Grizzly Bears"); // 2/2 for 2
+ addCard(Zone.LIBRARY, playerA, "Grave Titan"); // cost too much for discover 5
+
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Trumpeting Carnosaur");
+ setChoice(playerA, true); // cast for free from first discover
+ setChoice(playerA, true); // cast for free from second discover
+
+ setStopAt(1, PhaseStep.BEGIN_COMBAT);
+ execute();
+
+ assertPermanentCount(playerA, "Grizzly Bears", 2);
+ }
+}
diff --git a/Mage/src/main/java/mage/abilities/effects/keyword/DiscoverEffect.java b/Mage/src/main/java/mage/abilities/effects/keyword/DiscoverEffect.java
index 155edb663dd..1eb0a7e272b 100644
--- a/Mage/src/main/java/mage/abilities/effects/keyword/DiscoverEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/keyword/DiscoverEffect.java
@@ -12,6 +12,7 @@ import mage.filter.FilterCard;
import mage.filter.common.FilterNonlandCard;
import mage.filter.predicate.mageobject.ManaValuePredicate;
import mage.game.Game;
+import mage.game.events.DiscoverEvent;
import mage.players.Player;
import mage.util.CardUtil;
@@ -82,6 +83,7 @@ public class DiscoverEffect extends OneShotEffect {
}
cards.retainZone(Zone.EXILED, game);
player.putCardsOnBottomOfLibrary(cards, game, source, false);
+ game.fireEvent(new DiscoverEvent(source, player.getId(), amount));
return card;
}
-}
+}
\ No newline at end of file
diff --git a/Mage/src/main/java/mage/game/events/DiscoverEvent.java b/Mage/src/main/java/mage/game/events/DiscoverEvent.java
new file mode 100644
index 00000000000..1299f130000
--- /dev/null
+++ b/Mage/src/main/java/mage/game/events/DiscoverEvent.java
@@ -0,0 +1,14 @@
+package mage.game.events;
+
+import mage.abilities.Ability;
+
+import java.util.UUID;
+
+/**
+ * @author Susucr
+ */
+public class DiscoverEvent extends GameEvent {
+ public DiscoverEvent(Ability source, UUID playerId, int amount) {
+ super(EventType.DISCOVER, null, source, playerId, amount, false);
+ }
+}
diff --git a/Mage/src/main/java/mage/game/events/GameEvent.java b/Mage/src/main/java/mage/game/events/GameEvent.java
index a372dcd5d0d..8aa6c3784b0 100644
--- a/Mage/src/main/java/mage/game/events/GameEvent.java
+++ b/Mage/src/main/java/mage/game/events/GameEvent.java
@@ -528,10 +528,18 @@ public class GameEvent implements Serializable {
targetId player making the choice
sourceId sourceId of the ability forcing the choice
playerId controller of the ability forcing the choice
- amount numner of times choice is repeated
+ amount number of times choice is repeated
flag not used for this event
*/
FACE_VILLAINOUS_CHOICE,
+ /* DISCOVER
+ targetId not used for this event
+ sourceId sourceId of the ability discovering
+ playerId controller of the ability
+ amount discover value
+ flag not used for this event
+ */
+ DISCOVER,
//custom events
CUSTOM_EVENT
}