diff --git a/Mage.Sets/src/mage/cards/a/AtomwheelAcrobats.java b/Mage.Sets/src/mage/cards/a/AtomwheelAcrobats.java
new file mode 100644
index 00000000000..8ea23bace4f
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/a/AtomwheelAcrobats.java
@@ -0,0 +1,120 @@
+package mage.cards.a;
+
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.TriggeredAbilityImpl;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.RollDiceEffect;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.*;
+import mage.counters.CounterType;
+import mage.game.Game;
+import mage.game.events.DieRolledEvent;
+import mage.game.events.GameEvent;
+import mage.game.permanent.Permanent;
+
+import java.util.UUID;
+
+/**
+ * @author Sidorovich77
+ */
+public final class AtomwheelAcrobats extends CardImpl {
+
+ public AtomwheelAcrobats(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
+
+ this.subtype.add(SubType.ELF);
+ this.subtype.add(SubType.PERFORMER);
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(2);
+
+ // Whenever you roll a 1 or 2, put that many +1/+1 counters on Atomwheel Acrobats.
+ this.addAbility(new AtomwheelAcrobatsTriggeredAbility());
+
+ // {2}{G}: Roll a six-sided die.
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RollDiceEffect(null, 6), new ManaCostsImpl<>("{2}{G}"));
+ this.addAbility(ability);
+ }
+
+ private AtomwheelAcrobats(final AtomwheelAcrobats card) {
+ super(card);
+ }
+
+ @Override
+ public AtomwheelAcrobats copy() {
+ return new AtomwheelAcrobats(this);
+ }
+}
+
+// Based on Mr. House, President and CEO
+class AtomwheelAcrobatsTriggeredAbility extends TriggeredAbilityImpl {
+
+ public AtomwheelAcrobatsTriggeredAbility() {
+ super(Zone.BATTLEFIELD, new AtomwheelAcrobatsCountersEffect(), false);
+ }
+
+ private AtomwheelAcrobatsTriggeredAbility(final AtomwheelAcrobatsTriggeredAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public AtomwheelAcrobatsTriggeredAbility copy() {
+ return new AtomwheelAcrobatsTriggeredAbility(this);
+ }
+
+ @Override
+ public boolean checkEventType(GameEvent event, Game game) {
+ return event.getType() == GameEvent.EventType.DIE_ROLLED;
+ }
+
+ @Override
+ public boolean checkTrigger(GameEvent event, Game game) {
+ DieRolledEvent drEvent = (DieRolledEvent) event;
+ if (this.isControlledBy(event.getTargetId()) && drEvent.getRollDieType() == RollDieType.NUMERICAL) {
+ int result = drEvent.getResult();
+ if (result == 1 || result == 2) {
+ this.getEffects().setValue("rolled", result);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public String getRule() {
+ return "Whenever you roll a 1 or 2, put that many +1/+1 counters on {this}.";
+ }
+}
+
+class AtomwheelAcrobatsCountersEffect extends OneShotEffect {
+
+ AtomwheelAcrobatsCountersEffect() {
+ super(Outcome.Benefit);
+ }
+
+ private AtomwheelAcrobatsCountersEffect(final AtomwheelAcrobatsCountersEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public AtomwheelAcrobatsCountersEffect copy() {
+ return new AtomwheelAcrobatsCountersEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ if (getValue("rolled") == null) {
+ return false;
+ }
+ int amount = (Integer) getValue("rolled");
+ Permanent sourcePermanent = source.getSourcePermanentIfItStillExists(game);
+ if (sourcePermanent == null) {
+ return false;
+ }
+ sourcePermanent.addCounters(CounterType.P1P1.createInstance(amount), source, game);
+ return true;
+ }
+}
diff --git a/Mage.Sets/src/mage/cards/s/SixSidedDie.java b/Mage.Sets/src/mage/cards/s/SixSidedDie.java
new file mode 100644
index 00000000000..83d1fe6912d
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/s/SixSidedDie.java
@@ -0,0 +1,109 @@
+package mage.cards.s;
+
+import mage.abilities.Ability;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.continuous.BoostTargetEffect;
+import mage.abilities.effects.common.continuous.SetBasePowerToughnessTargetEffect;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Outcome;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
+import mage.target.common.TargetCreaturePermanent;
+
+import java.util.UUID;
+
+/**
+ * @author Sidorovich77
+ */
+public final class SixSidedDie extends CardImpl {
+
+ public SixSidedDie(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}");
+
+ // Choose target creature. Roll a six-sided die.
+ //
+ //1 — It has base toughness 1 until end of turn.
+ //
+ //2 — Put two -1/-1 counters on it.
+ //
+ //3 — Six-Sided Die deals 3 damage to it, and you gain 3 life.
+ //
+ //4 — It gets -4/-4 until end of turn.
+ //
+ //5 — Destroy it.
+ //
+ //6 — Exile it.
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent());
+ this.getSpellAbility().addEffect(new SixSidedDieEffect());
+ }
+
+ private SixSidedDie(final SixSidedDie card) {
+ super(card);
+ }
+
+ @Override
+ public SixSidedDie copy() {
+ return new SixSidedDie(this);
+ }
+}
+
+class SixSidedDieEffect extends OneShotEffect {
+
+ SixSidedDieEffect() {
+ super(Outcome.Benefit);
+ setText("choose target creature. Roll a six-sided die." +
+ "
1 — It has base toughness 1 until end of turn." +
+ "
2 — Put two -1/-1 counters on it." +
+ "
3 — {this} deals 3 damage to it and you gain 3 life." +
+ "
4 — It gets -4/-4 until end of turn." +
+ "
5 — Destroy it." +
+ "
6 — Exile it.");
+ }
+
+ private SixSidedDieEffect(final SixSidedDieEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public SixSidedDieEffect copy() {
+ return new SixSidedDieEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player player = game.getPlayer(source.getControllerId());
+ Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source));
+ if (player == null || permanent == null) {
+ return false;
+ }
+ int result = player.rollDice(outcome, source, game, 1);
+ switch (result) {
+ case 6:
+ game.addEffect(new SetBasePowerToughnessTargetEffect(1, 1, Duration.EndOfTurn), source);
+ break;
+ case 2:
+ permanent.addCounters(CounterType.M1M1.createInstance(2), source, game);
+ break;
+ case 3:
+ permanent.damage(3, source, game);
+ player.gainLife(3, game, source);
+ break;
+ case 4:
+ game.addEffect(new BoostTargetEffect(-4, -4, Duration.EndOfTurn), source);
+ break;
+ case 5:
+ permanent.destroy(source, game);
+ break;
+ case 1:
+ player.moveCards(permanent, Zone.EXILED, source, game);
+ break;
+ }
+ return true;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/Unfinity.java b/Mage.Sets/src/mage/sets/Unfinity.java
index 86bf7616201..b6afc3459e9 100644
--- a/Mage.Sets/src/mage/sets/Unfinity.java
+++ b/Mage.Sets/src/mage/sets/Unfinity.java
@@ -21,6 +21,7 @@ public final class Unfinity extends ExpansionSet {
this.hasBoosters = false; // not likely to be able to drafts at any point
cards.add(new SetCardInfo("\"Name Sticker\" Goblin", "107m", Rarity.COMMON, mage.cards.n.NameStickerGoblin.class));
+ cards.add(new SetCardInfo("Atomwheel Acrobats", 130, Rarity.COMMON, mage.cards.a.AtomwheelAcrobats.class));
cards.add(new SetCardInfo("Attempted Murder", 66, Rarity.UNCOMMON, mage.cards.a.AttemptedMurder.class));
cards.add(new SetCardInfo("Blood Crypt", 279, Rarity.RARE, mage.cards.b.BloodCrypt.class));
cards.add(new SetCardInfo("Boing!", 40, Rarity.COMMON, mage.cards.b.Boing.class));
@@ -51,6 +52,7 @@ public final class Unfinity extends ExpansionSet {
cards.add(new SetCardInfo("Plains", 240, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_UST_VARIOUS));
cards.add(new SetCardInfo("Sacred Foundry", 285, Rarity.RARE, mage.cards.s.SacredFoundry.class));
cards.add(new SetCardInfo("Saw in Half", 88, Rarity.RARE, mage.cards.s.SawInHalf.class));
+ cards.add(new SetCardInfo("Six-Sided Die", 92, Rarity.COMMON, mage.cards.s.SixSidedDie.class));
cards.add(new SetCardInfo("Slight Malfunction", 123, Rarity.COMMON, mage.cards.s.SlightMalfunction.class));
cards.add(new SetCardInfo("Starlight Spectacular", 28, Rarity.RARE, mage.cards.s.StarlightSpectacular.class));
cards.add(new SetCardInfo("Steam Vents", 283, Rarity.RARE, mage.cards.s.SteamVents.class));
diff --git a/Mage/src/main/java/mage/constants/SubType.java b/Mage/src/main/java/mage/constants/SubType.java
index 63b020f0763..d7ecbae173b 100644
--- a/Mage/src/main/java/mage/constants/SubType.java
+++ b/Mage/src/main/java/mage/constants/SubType.java
@@ -307,6 +307,7 @@ public enum SubType {
PEASANT("Peasant", SubTypeSet.CreatureType),
PEGASUS("Pegasus", SubTypeSet.CreatureType),
PENTAVITE("Pentavite", SubTypeSet.CreatureType),
+ PERFORMER("Performer", SubTypeSet.CreatureType),
PEST("Pest", SubTypeSet.CreatureType),
PHELDDAGRIF("Phelddagrif", SubTypeSet.CreatureType),
PHOENIX("Phoenix", SubTypeSet.CreatureType),