mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 19:41:59 -08:00
[BLC] Implement Tempt with Bunnies (#12702)
Also revise Tempt with Vengeance to use a separate CreateTokenEffect for each opponent, per the ruling.
This commit is contained in:
parent
2fbe5bd68c
commit
2c9716c79f
3 changed files with 103 additions and 2 deletions
93
Mage.Sets/src/mage/cards/t/TemptWithBunnies.java
Normal file
93
Mage.Sets/src/mage/cards/t/TemptWithBunnies.java
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
package mage.cards.t;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.effects.OneShotEffect;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.permanent.token.RabbitToken;
|
||||||
|
import mage.game.permanent.token.Token;
|
||||||
|
import mage.players.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Grath
|
||||||
|
*/
|
||||||
|
public final class TemptWithBunnies extends CardImpl {
|
||||||
|
|
||||||
|
public TemptWithBunnies(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{W}");
|
||||||
|
|
||||||
|
// Tempting offer -- Draw a card and create a 1/1 white Rabbit creature token. Then each opponent may draw a
|
||||||
|
// card and create a 1/1 white Rabbit creature token. For each opponent who does, you draw a card and you
|
||||||
|
// create a 1/1 white Rabbit creature token.
|
||||||
|
this.getSpellAbility().addEffect(new TemptWithBunniesEffect());
|
||||||
|
}
|
||||||
|
|
||||||
|
private TemptWithBunnies(final TemptWithBunnies card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TemptWithBunnies copy() {
|
||||||
|
return new TemptWithBunnies(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TemptWithBunniesEffect extends OneShotEffect {
|
||||||
|
|
||||||
|
TemptWithBunniesEffect() {
|
||||||
|
super(Outcome.PutLandInPlay);
|
||||||
|
this.staticText = "<i>Tempting offer</i> — Draw a card and create a 1/1 white Rabbit creature token. Then each opponent may draw a card and create a 1/1 white Rabbit creature token. For each opponent who does, you draw a card and you create a 1/1 white Rabbit creature token.";
|
||||||
|
}
|
||||||
|
|
||||||
|
private TemptWithBunniesEffect(final TemptWithBunniesEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TemptWithBunniesEffect copy() {
|
||||||
|
return new TemptWithBunniesEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
|
if (controller != null) {
|
||||||
|
|
||||||
|
controller.drawCards(1, source, game);
|
||||||
|
Token tokenCopy = new RabbitToken();
|
||||||
|
tokenCopy.putOntoBattlefield(1, game, source, source.getControllerId(), false, false);
|
||||||
|
|
||||||
|
int opponentsAddedTokens = 0;
|
||||||
|
for (UUID playerId : game.getOpponents(controller.getId())) {
|
||||||
|
Player opponent = game.getPlayer(playerId);
|
||||||
|
if (opponent != null) {
|
||||||
|
if (opponent.chooseUse(outcome, "Draw a card and create a Rabbit token?", source, game)) {
|
||||||
|
opponent.drawCards(1, source, game);
|
||||||
|
opponentsAddedTokens++;
|
||||||
|
tokenCopy.putOntoBattlefield(1, game, source, playerId, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (opponentsAddedTokens > 0) {
|
||||||
|
// Each batch of tokens is independent, per ruling:
|
||||||
|
// After each opponent has decided, the effect happens simultaneously for each one who accepted the
|
||||||
|
// offer. Then, the effect happens again for you a number of times equal to the number of opponents who
|
||||||
|
// accepted.
|
||||||
|
// (2024-07-26)
|
||||||
|
for (int i = 0; i < opponentsAddedTokens; i++) {
|
||||||
|
controller.drawCards(1, source, game);
|
||||||
|
tokenCopy.putOntoBattlefield(opponentsAddedTokens, game, source, source.getControllerId(), false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -68,13 +68,20 @@ class TemptWithVengeanceEffect extends OneShotEffect {
|
||||||
Player opponent = game.getPlayer(playerId);
|
Player opponent = game.getPlayer(playerId);
|
||||||
if (opponent != null) {
|
if (opponent != null) {
|
||||||
if (opponent.chooseUse(outcome, "Create " + xValue + " Elemental tokens?", source, game)) {
|
if (opponent.chooseUse(outcome, "Create " + xValue + " Elemental tokens?", source, game)) {
|
||||||
opponentsAddedTokens += xValue;
|
opponentsAddedTokens++;
|
||||||
tokenCopy.putOntoBattlefield(xValue, game, source, playerId, false, false);
|
tokenCopy.putOntoBattlefield(xValue, game, source, playerId, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (opponentsAddedTokens > 0) {
|
if (opponentsAddedTokens > 0) {
|
||||||
tokenCopy.putOntoBattlefield(opponentsAddedTokens, game, source, source.getControllerId(), false, false);
|
// Each batch of tokens is independent, per ruling:
|
||||||
|
// After each opponent has decided, the effect happens simultaneously for each one who accepted the
|
||||||
|
// offer. Then, the effect happens again for you a number of times equal to the number of opponents who
|
||||||
|
// accepted.
|
||||||
|
// (2013-10-17)
|
||||||
|
for (int i = 0; i < opponentsAddedTokens; i++) {
|
||||||
|
tokenCopy.putOntoBattlefield(opponentsAddedTokens, game, source, source.getControllerId(), false, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,7 @@ public final class BloomburrowCommander extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Temple of Mystery", 342, Rarity.RARE, mage.cards.t.TempleOfMystery.class));
|
cards.add(new SetCardInfo("Temple of Mystery", 342, Rarity.RARE, mage.cards.t.TempleOfMystery.class));
|
||||||
cards.add(new SetCardInfo("Temple of Plenty", 343, Rarity.RARE, mage.cards.t.TempleOfPlenty.class));
|
cards.add(new SetCardInfo("Temple of Plenty", 343, Rarity.RARE, mage.cards.t.TempleOfPlenty.class));
|
||||||
cards.add(new SetCardInfo("Temple of Triumph", 344, Rarity.RARE, mage.cards.t.TempleOfTriumph.class));
|
cards.add(new SetCardInfo("Temple of Triumph", 344, Rarity.RARE, mage.cards.t.TempleOfTriumph.class));
|
||||||
|
cards.add(new SetCardInfo("Tempt with Bunnies", 13, Rarity.RARE, mage.cards.t.TemptWithBunnies.class));
|
||||||
cards.add(new SetCardInfo("Tempt with Discovery", 124, Rarity.RARE, mage.cards.t.TemptWithDiscovery.class));
|
cards.add(new SetCardInfo("Tempt with Discovery", 124, Rarity.RARE, mage.cards.t.TemptWithDiscovery.class));
|
||||||
cards.add(new SetCardInfo("Tendershoot Dryad", 242, Rarity.RARE, mage.cards.t.TendershootDryad.class));
|
cards.add(new SetCardInfo("Tendershoot Dryad", 242, Rarity.RARE, mage.cards.t.TendershootDryad.class));
|
||||||
cards.add(new SetCardInfo("Tenuous Truce", 159, Rarity.RARE, mage.cards.t.TenuousTruce.class));
|
cards.add(new SetCardInfo("Tenuous Truce", 159, Rarity.RARE, mage.cards.t.TenuousTruce.class));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue