mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
updated language for various user choices
This commit is contained in:
parent
e2e7df6af2
commit
a6255402e3
43 changed files with 66 additions and 99 deletions
|
@ -105,7 +105,7 @@ class AsForetoldAlternativeCost extends AlternativeCostSourceAbility {
|
||||||
Permanent asForetold = game.getPermanent(getSourceId());
|
Permanent asForetold = game.getPermanent(getSourceId());
|
||||||
if (controller != null
|
if (controller != null
|
||||||
&& asForetold != null) {
|
&& asForetold != null) {
|
||||||
if (controller.chooseUse(Outcome.Neutral, "Do you wish to use "
|
if (controller.chooseUse(Outcome.Neutral, "Use "
|
||||||
+ asForetold.getLogName() + " to pay the alternative cost ?", ability, game)) {
|
+ asForetold.getLogName() + " to pay the alternative cost ?", ability, game)) {
|
||||||
wasActivated = super.askToActivateAlternativeCosts(ability, game);
|
wasActivated = super.askToActivateAlternativeCosts(ability, game);
|
||||||
if (wasActivated) {
|
if (wasActivated) {
|
||||||
|
|
|
@ -74,7 +74,7 @@ class AssassinsTrophyEffect extends OneShotEffect {
|
||||||
if (permanent != null) {
|
if (permanent != null) {
|
||||||
Player controller = game.getPlayer(permanent.getControllerId());
|
Player controller = game.getPlayer(permanent.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
if (controller.chooseUse(Outcome.PutLandInPlay, "Do you wish to search for a basic land, put it onto the battlefield and then shuffle your library?", source, game)) {
|
if (controller.chooseUse(Outcome.PutLandInPlay, "Search for a basic land, put it onto the battlefield and then shuffle your library?", source, game)) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, source, game)) {
|
if (controller.searchLibrary(target, source, game)) {
|
||||||
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
||||||
|
|
|
@ -67,7 +67,7 @@ class CaravanVigilEffect extends OneShotEffect {
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
Cards cards = new CardsImpl(card);
|
Cards cards = new CardsImpl(card);
|
||||||
if (MorbidCondition.instance.apply(game, source)
|
if (MorbidCondition.instance.apply(game, source)
|
||||||
&& controller.chooseUse(Outcome.PutLandInPlay, "Do you wish to put the card onto the battlefield instead?", source, game)) {
|
&& controller.chooseUse(Outcome.PutLandInPlay, "Put the card onto the battlefield instead?", source, game)) {
|
||||||
controller.moveCards(card, Zone.BATTLEFIELD, source, game);
|
controller.moveCards(card, Zone.BATTLEFIELD, source, game);
|
||||||
} else {
|
} else {
|
||||||
controller.moveCards(card, Zone.HAND, source, game);
|
controller.moveCards(card, Zone.HAND, source, game);
|
||||||
|
|
|
@ -231,21 +231,21 @@ class ChandraPyromasterEffect3 extends OneShotEffect {
|
||||||
Card card = cards.get(target.getFirstTarget(), game);
|
Card card = cards.get(target.getFirstTarget(), game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
ApprovingObject approvingObject = new ApprovingObject(source, game);
|
ApprovingObject approvingObject = new ApprovingObject(source, game);
|
||||||
if (controller.chooseUse(outcome, "Do you wish to cast copy 1 of " + card.getName(), source, game)) {
|
if (controller.chooseUse(outcome, "Cast copy 1 of " + card.getName(), source, game)) {
|
||||||
Card copy1 = game.copyCard(card, source, source.getControllerId());
|
Card copy1 = game.copyCard(card, source, source.getControllerId());
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + copy1.getId(), Boolean.TRUE);
|
game.getState().setValue("PlayFromNotOwnHandZone" + copy1.getId(), Boolean.TRUE);
|
||||||
controller.cast(controller.chooseAbilityForCast(copy1, game, true),
|
controller.cast(controller.chooseAbilityForCast(copy1, game, true),
|
||||||
game, true, approvingObject);
|
game, true, approvingObject);
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + copy1.getId(), null);
|
game.getState().setValue("PlayFromNotOwnHandZone" + copy1.getId(), null);
|
||||||
}
|
}
|
||||||
if (controller.chooseUse(outcome, "Do you wish to cast copy 2 of " + card.getName(), source, game)) {
|
if (controller.chooseUse(outcome, "Cast copy 2 of " + card.getName(), source, game)) {
|
||||||
Card copy2 = game.copyCard(card, source, source.getControllerId());
|
Card copy2 = game.copyCard(card, source, source.getControllerId());
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + copy2.getId(), Boolean.TRUE);
|
game.getState().setValue("PlayFromNotOwnHandZone" + copy2.getId(), Boolean.TRUE);
|
||||||
controller.cast(controller.chooseAbilityForCast(copy2, game, true),
|
controller.cast(controller.chooseAbilityForCast(copy2, game, true),
|
||||||
game, true, approvingObject);
|
game, true, approvingObject);
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + copy2.getId(), null);
|
game.getState().setValue("PlayFromNotOwnHandZone" + copy2.getId(), null);
|
||||||
}
|
}
|
||||||
if (controller.chooseUse(outcome, "Do you wish to cast copy 3 of " + card.getName(), source, game)) {
|
if (controller.chooseUse(outcome, "Cast copy 3 of " + card.getName(), source, game)) {
|
||||||
Card copy3 = game.copyCard(card, source, source.getControllerId());
|
Card copy3 = game.copyCard(card, source, source.getControllerId());
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + copy3.getId(), Boolean.TRUE);
|
game.getState().setValue("PlayFromNotOwnHandZone" + copy3.getId(), Boolean.TRUE);
|
||||||
controller.cast(controller.chooseAbilityForCast(copy3, game, true),
|
controller.cast(controller.chooseAbilityForCast(copy3, game, true),
|
||||||
|
|
|
@ -90,7 +90,7 @@ class ChecksAndBalancesEffect extends OneShotEffect {
|
||||||
for (UUID uuid : game.getOpponents(spell.getControllerId())) {
|
for (UUID uuid : game.getOpponents(spell.getControllerId())) {
|
||||||
Player player = game.getPlayer(uuid);
|
Player player = game.getPlayer(uuid);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
if (!player.chooseUse(outcome, "Do you wish to discard a card to counter " + spell.getLogName() + '?', source, game)) {
|
if (!player.chooseUse(outcome, "Discard a card to counter " + spell.getLogName() + '?', source, game)) {
|
||||||
game.informPlayers(player.getLogName() + " refuses to discard a card to counter " + spell.getLogName());
|
game.informPlayers(player.getLogName() + " refuses to discard a card to counter " + spell.getLogName());
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -90,7 +90,7 @@ class ChorusOfTheConclaveReplacementEffect extends ReplacementEffectImpl {
|
||||||
int xCost = 0;
|
int xCost = 0;
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
if (controller.chooseUse(Outcome.Benefit, "Do you wish to pay the additonal cost to add +1/+1 counters to the creature you cast?", source, game)) {
|
if (controller.chooseUse(Outcome.Benefit, "Pay the additonal cost to add +1/+1 counters to the creature you cast?", source, game)) {
|
||||||
xCost += ManaUtil.playerPaysXGenericMana(false, "Chorus of the Conclave", controller, source, game);
|
xCost += ManaUtil.playerPaysXGenericMana(false, "Chorus of the Conclave", controller, source, game);
|
||||||
// save the x value to be available for ETB replacement effect
|
// save the x value to be available for ETB replacement effect
|
||||||
Object object = game.getState().getValue("spellX" + source.getSourceId());
|
Object object = game.getState().getValue("spellX" + source.getSourceId());
|
||||||
|
|
|
@ -124,8 +124,7 @@ class CloakOfConfusionEffect extends OneShotEffect {
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
Permanent enchantedCreature = game.getPermanent(game.getPermanent(source.getSourceId()).getAttachedTo());
|
Permanent enchantedCreature = game.getPermanent(game.getPermanent(source.getSourceId()).getAttachedTo());
|
||||||
if (controller != null && controller.chooseUse(outcome, "Do you wish to not assign combat damage from "
|
if (controller != null && controller.chooseUse(outcome, "Have defending player discard a card at random? " + enchantedCreature.getName() + " will not assign combat damage.", source, game)) {
|
||||||
+ enchantedCreature.getName() + " and have the defending player discard a card at random?", source, game)) {
|
|
||||||
ContinuousEffect effect = new AssignNoCombatDamageTargetEffect();
|
ContinuousEffect effect = new AssignNoCombatDamageTargetEffect();
|
||||||
effect.setTargetPointer(new FixedTarget(enchantedCreature.getId()));
|
effect.setTargetPointer(new FixedTarget(enchantedCreature.getId()));
|
||||||
game.addEffect(effect, source);
|
game.addEffect(effect, source);
|
||||||
|
|
|
@ -66,7 +66,7 @@ class CoralFightersEffect extends OneShotEffect {
|
||||||
if(card != null) {
|
if(card != null) {
|
||||||
Cards cards = new CardsImpl(card);
|
Cards cards = new CardsImpl(card);
|
||||||
controller.lookAtCards("Coral Fighters", cards, game);
|
controller.lookAtCards("Coral Fighters", cards, game);
|
||||||
if (controller.chooseUse(outcome, "Do you wish to put card on the bottom of player's library?", source, game)) {
|
if (controller.chooseUse(outcome, "Put that card on the bottom of its owner's library?", source, game)) {
|
||||||
controller.moveCardToLibraryWithInfo(card, source, game, Zone.LIBRARY, false, false);
|
controller.moveCardToLibraryWithInfo(card, source, game, Zone.LIBRARY, false, false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -82,7 +82,7 @@ class DelverOfSecretsEffect extends OneShotEffect {
|
||||||
Cards cards = new CardsImpl();
|
Cards cards = new CardsImpl();
|
||||||
cards.add(card);
|
cards.add(card);
|
||||||
player.lookAtCards(sourcePermanent.getName(), cards, game);
|
player.lookAtCards(sourcePermanent.getName(), cards, game);
|
||||||
if (player.chooseUse(Outcome.DrawCard, "Do you wish to reveal the card at the top of the library?", source, game)) {
|
if (player.chooseUse(Outcome.DrawCard, "Reveal the top card of your library?", source, game)) {
|
||||||
player.revealCards(sourcePermanent.getName(), cards, game);
|
player.revealCards(sourcePermanent.getName(), cards, game);
|
||||||
if (filter.match(card, game)) {
|
if (filter.match(card, game)) {
|
||||||
return new TransformSourceEffect(true, true).apply(game, source);
|
return new TransformSourceEffect(true, true).apply(game, source);
|
||||||
|
|
|
@ -83,7 +83,7 @@ class BecomesColorOrColorsEnchantedEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
if (!controller.chooseUse(Outcome.Neutral, "Do you wish to choose another color?", source, game)) {
|
if (!controller.chooseUse(Outcome.Neutral, "Choose another color?", source, game)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,7 @@ class ElderSpawnEffect extends OneShotEffect {
|
||||||
if (controller != null && sourcePermanent != null) {
|
if (controller != null && sourcePermanent != null) {
|
||||||
TargetControlledPermanent target = new TargetControlledPermanent(1, 1, filter, true);
|
TargetControlledPermanent target = new TargetControlledPermanent(1, 1, filter, true);
|
||||||
SacrificeTargetCost cost = new SacrificeTargetCost(target);
|
SacrificeTargetCost cost = new SacrificeTargetCost(target);
|
||||||
if (!controller.chooseUse(Outcome.AIDontUseIt, "Do you wish to sacrifice an Island?", source, game)
|
if (!controller.chooseUse(Outcome.AIDontUseIt, "Sacrifice an Island?", source, game)
|
||||||
|| !cost.canPay(source, source, source.getControllerId(), game)
|
|| !cost.canPay(source, source, source.getControllerId(), game)
|
||||||
|| !cost.pay(source, game, source, source.getControllerId(), true)) {
|
|| !cost.pay(source, game, source, source.getControllerId(), true)) {
|
||||||
sourcePermanent.sacrifice(source, game);
|
sourcePermanent.sacrifice(source, game);
|
||||||
|
|
|
@ -84,7 +84,7 @@ class EtherwroughtPageEffect extends OneShotEffect {
|
||||||
CardsImpl cards = new CardsImpl();
|
CardsImpl cards = new CardsImpl();
|
||||||
cards.add(card);
|
cards.add(card);
|
||||||
controller.lookAtCards("Etherwrought Page", cards, game);
|
controller.lookAtCards("Etherwrought Page", cards, game);
|
||||||
if (controller.chooseUse(Outcome.Neutral, "Do you wish to put the card into your graveyard?", source, game)) {
|
if (controller.chooseUse(Outcome.Neutral, "Put that card into your graveyard?", source, game)) {
|
||||||
return controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
return controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -87,7 +87,7 @@ class EvershrikeEffect extends OneShotEffect {
|
||||||
filterAuraCard.add(new AuraCardCanAttachToPermanentId(evershrikePermanent.getId()));
|
filterAuraCard.add(new AuraCardCanAttachToPermanentId(evershrikePermanent.getId()));
|
||||||
filterAuraCard.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xAmount));
|
filterAuraCard.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, xAmount));
|
||||||
int count = controller.getHand().count(filterAuraCard, game);
|
int count = controller.getHand().count(filterAuraCard, game);
|
||||||
if (count > 0 && controller.chooseUse(Outcome.Benefit, "Do you wish to put an Aura card from your hand onto " + evershrikeCard.getIdName() + "?", source, game)) {
|
if (count > 0 && controller.chooseUse(Outcome.Benefit, "Put an Aura card from your hand onto the battlefield attached to " + evershrikeCard.getIdName() + "?", source, game)) {
|
||||||
TargetCard targetAura = new TargetCard(Zone.HAND, filterAuraCard);
|
TargetCard targetAura = new TargetCard(Zone.HAND, filterAuraCard);
|
||||||
if (controller.choose(Outcome.Benefit, controller.getHand(), targetAura, game)) {
|
if (controller.choose(Outcome.Benefit, controller.getHand(), targetAura, game)) {
|
||||||
Card aura = game.getCard(targetAura.getFirstTarget());
|
Card aura = game.getCard(targetAura.getFirstTarget());
|
||||||
|
|
|
@ -88,7 +88,7 @@ class GargantuanGorillaSacrificeEffect extends OneShotEffect {
|
||||||
if (controller != null && sourcePermanent != null) {
|
if (controller != null && sourcePermanent != null) {
|
||||||
TargetControlledPermanent target = new TargetControlledPermanent(1, 1, filter, true);
|
TargetControlledPermanent target = new TargetControlledPermanent(1, 1, filter, true);
|
||||||
SacrificeTargetCost cost = new SacrificeTargetCost(target);
|
SacrificeTargetCost cost = new SacrificeTargetCost(target);
|
||||||
if (!controller.chooseUse(Outcome.Benefit, "Do you wish to sacrifice a Forest?", source, game)
|
if (!controller.chooseUse(Outcome.Benefit, "Sacrifice a Forest?", source, game)
|
||||||
|| !cost.canPay(source, source, source.getControllerId(), game)
|
|| !cost.canPay(source, source, source.getControllerId(), game)
|
||||||
|| !cost.pay(source, game, source, source.getControllerId(), true)) {
|
|| !cost.pay(source, game, source, source.getControllerId(), true)) {
|
||||||
sourcePermanent.sacrifice(source, game);
|
sourcePermanent.sacrifice(source, game);
|
||||||
|
|
|
@ -87,7 +87,7 @@ class GemstoneCavernsAbility extends StaticAbility implements OpeningHandAction
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean askUseOpeningHandAction(Card card, Player player, Game game) {
|
public boolean askUseOpeningHandAction(Card card, Player player, Game game) {
|
||||||
return player.chooseUse(Outcome.PutCardInPlay, "Do you wish to put " + card.getIdName() + " into play?", this, game);
|
return player.chooseUse(Outcome.PutCardInPlay, "Put " + card.getIdName() + " onto the battlefield?", this, game);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -74,7 +74,7 @@ class GeomancersGambitEffect extends OneShotEffect {
|
||||||
if (controller == null) {
|
if (controller == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!controller.chooseUse(Outcome.PutLandInPlay, "Do you wish to search for a basic land, put it onto the battlefield and then shuffle your library?", source, game)) {
|
if (!controller.chooseUse(Outcome.PutLandInPlay, "Search for a basic land, put it onto the battlefield, and then shuffle your library?", source, game)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
|
|
|
@ -71,7 +71,7 @@ class GhostQuarterEffect extends OneShotEffect {
|
||||||
Permanent permanent = getTargetPointer().getFirstTargetPermanentOrLKI(game, source);
|
Permanent permanent = getTargetPointer().getFirstTargetPermanentOrLKI(game, source);
|
||||||
if (permanent != null) {
|
if (permanent != null) {
|
||||||
Player controller = game.getPlayer(permanent.getControllerId());
|
Player controller = game.getPlayer(permanent.getControllerId());
|
||||||
if (controller != null && controller.chooseUse(Outcome.PutLandInPlay, "Do you wish to search for a basic land, put it onto the battlefield and then shuffle your library?", source, game)) {
|
if (controller != null && controller.chooseUse(Outcome.PutLandInPlay, "Search for a basic land, put it onto the battlefield, and then shuffle your library?", source, game)) {
|
||||||
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND);
|
||||||
if (controller.searchLibrary(target, source, game)) {
|
if (controller.searchLibrary(target, source, game)) {
|
||||||
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
||||||
|
|
|
@ -1,26 +1,21 @@
|
||||||
|
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||||
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
import mage.abilities.mana.RedManaAbility;
|
import mage.abilities.mana.RedManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.Game;
|
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.players.Player;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
|
@ -28,17 +23,23 @@ import mage.players.Player;
|
||||||
public final class IzzetKeyrune extends CardImpl {
|
public final class IzzetKeyrune extends CardImpl {
|
||||||
|
|
||||||
public IzzetKeyrune(UUID ownerId, CardSetInfo setInfo) {
|
public IzzetKeyrune(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||||
|
|
||||||
// {T}: Add {U} or {R}.
|
// {T}: Add {U} or {R}.
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
|
|
||||||
// {U}{R}: Until end of turn, Izzet Keyrune becomes a 2/1 blue and red Elemental artifact creature.
|
// {U}{R}: Until end of turn, Izzet Keyrune becomes a 2/1 blue and red Elemental artifact creature.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new IzzetKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{U}{R}")));
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
|
new IzzetKeyruneToken(), "", Duration.EndOfTurn
|
||||||
|
), new ManaCostsImpl("{U}{R}")));
|
||||||
|
|
||||||
// Whenever Izzet Keyrune deals combat damage to a player, you may draw a card. If you do, discard a card.
|
// Whenever Izzet Keyrune deals combat damage to a player, you may draw a card. If you do, discard a card.
|
||||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new IzzetKeyruneEffect(), true));
|
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||||
|
new DrawDiscardControllerEffect(1, 1, true)
|
||||||
|
.setText("you may draw a card. If you do, discard a card"),
|
||||||
|
false
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private IzzetKeyrune(final IzzetKeyrune card) {
|
private IzzetKeyrune(final IzzetKeyrune card) {
|
||||||
|
@ -50,37 +51,8 @@ public final class IzzetKeyrune extends CardImpl {
|
||||||
return new IzzetKeyrune(this);
|
return new IzzetKeyrune(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class IzzetKeyruneEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
public IzzetKeyruneEffect() {
|
|
||||||
super(Outcome.DrawCard);
|
|
||||||
this.staticText = "you may draw a card. If you do, discard a card";
|
|
||||||
}
|
|
||||||
|
|
||||||
public IzzetKeyruneEffect(final IzzetKeyruneEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IzzetKeyruneEffect copy() {
|
|
||||||
return new IzzetKeyruneEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Player player = game.getPlayer(source.getControllerId());
|
|
||||||
if (player != null && player.chooseUse(Outcome.DrawCard, "Do you wish to draw a card? If you do, discard a card.", source, game)) {
|
|
||||||
if (player.drawCards(1, source, game) > 0) {
|
|
||||||
player.discard(1, false, false, source, game);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class IzzetKeyruneToken extends TokenImpl {
|
private static class IzzetKeyruneToken extends TokenImpl {
|
||||||
IzzetKeyruneToken() {
|
private IzzetKeyruneToken() {
|
||||||
super("", "2/1 blue and red Elemental artifact creature");
|
super("", "2/1 blue and red Elemental artifact creature");
|
||||||
cardType.add(CardType.ARTIFACT);
|
cardType.add(CardType.ARTIFACT);
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
|
@ -91,7 +63,7 @@ public final class IzzetKeyrune extends CardImpl {
|
||||||
toughness = new MageInt(1);
|
toughness = new MageInt(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IzzetKeyruneToken(final IzzetKeyruneToken token) {
|
private IzzetKeyruneToken(final IzzetKeyruneToken token) {
|
||||||
super(token);
|
super(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,4 +72,3 @@ public final class IzzetKeyrune extends CardImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ class JaceTheMindSculptorEffect1 extends OneShotEffect {
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
Cards cards = new CardsImpl(card);
|
Cards cards = new CardsImpl(card);
|
||||||
controller.lookAtCards("Jace, the Mind Sculptor", cards, game);
|
controller.lookAtCards("Jace, the Mind Sculptor", cards, game);
|
||||||
if (controller.chooseUse(outcome, "Do you wish to put card on the bottom of player's library?", source, game)) {
|
if (controller.chooseUse(outcome, "Put that card on the bottom of its owner's library?", source, game)) {
|
||||||
controller.moveCardToLibraryWithInfo(card, source, game, Zone.LIBRARY, false, false);
|
controller.moveCardToLibraryWithInfo(card, source, game, Zone.LIBRARY, false, false);
|
||||||
} else {
|
} else {
|
||||||
game.informPlayers(controller.getLogName() + " puts the card back on top of the library.");
|
game.informPlayers(controller.getLogName() + " puts the card back on top of the library.");
|
||||||
|
|
|
@ -77,7 +77,7 @@ class MetamorphoseEffect extends OneShotEffect {
|
||||||
Permanent permanent = getTargetPointer().getFirstTargetPermanentOrLKI(game, source);
|
Permanent permanent = getTargetPointer().getFirstTargetPermanentOrLKI(game, source);
|
||||||
if (permanent != null) {
|
if (permanent != null) {
|
||||||
Player controller = game.getPlayer(permanent.getControllerId());
|
Player controller = game.getPlayer(permanent.getControllerId());
|
||||||
if (controller != null && controller.canRespond() && controller.chooseUse(Outcome.PutCardInPlay, "Do you wish to put an artifact, creature, enchantment, or land card onto the battlefield?", source, game)) {
|
if (controller != null && controller.canRespond() && controller.chooseUse(Outcome.PutCardInPlay, "Put an artifact, creature, enchantment, or land card onto the battlefield?", source, game)) {
|
||||||
TargetCardInHand target = new TargetCardInHand(filter);
|
TargetCardInHand target = new TargetCardInHand(filter);
|
||||||
target.clearChosen();
|
target.clearChosen();
|
||||||
if (controller.chooseTarget(outcome, target, source, game)) {
|
if (controller.chooseTarget(outcome, target, source, game)) {
|
||||||
|
|
|
@ -89,7 +89,7 @@ class MinionLeshracEffect extends OneShotEffect {
|
||||||
filterCreature.add(AnotherPredicate.instance);
|
filterCreature.add(AnotherPredicate.instance);
|
||||||
TargetControlledPermanent target = new TargetControlledPermanent(filterCreature);
|
TargetControlledPermanent target = new TargetControlledPermanent(filterCreature);
|
||||||
SacrificeTargetCost cost = new SacrificeTargetCost(target);
|
SacrificeTargetCost cost = new SacrificeTargetCost(target);
|
||||||
if (controller.chooseUse(Outcome.AIDontUseIt, "Do you wish to sacrifice another creature to prevent the 5 damage to you?", source, game)
|
if (controller.chooseUse(Outcome.AIDontUseIt, "Sacrifice another creature to prevent the damage?", source, game)
|
||||||
&& cost.canPay(source, source, source.getControllerId(), game)
|
&& cost.canPay(source, source, source.getControllerId(), game)
|
||||||
&& cost.pay(source, game, source, source.getControllerId(), true)) {
|
&& cost.pay(source, game, source, source.getControllerId(), true)) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -66,7 +66,7 @@ class MishrasWarMachineEffect extends OneShotEffect {
|
||||||
if (controller != null
|
if (controller != null
|
||||||
&& sourcePermanent != null) {
|
&& sourcePermanent != null) {
|
||||||
DiscardCardCost cost = new DiscardCardCost();
|
DiscardCardCost cost = new DiscardCardCost();
|
||||||
if (controller.chooseUse(Outcome.Benefit, "Do you wish to discard a card to prevent the 3 damage to you?", source, game)
|
if (controller.chooseUse(Outcome.Benefit, "Discard a card to prevent the damage?", source, game)
|
||||||
&& cost.canPay(source, source, source.getControllerId(), game)
|
&& cost.canPay(source, source, source.getControllerId(), game)
|
||||||
&& cost.pay(source, game, source, source.getControllerId(), true)) {
|
&& cost.pay(source, game, source, source.getControllerId(), true)) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -81,7 +81,7 @@ class MitoticManipulationEffect extends OneShotEffect {
|
||||||
filter.add(Predicates.or(namePredicates));
|
filter.add(Predicates.or(namePredicates));
|
||||||
TargetCard target = new TargetCard(Zone.LIBRARY, filter);
|
TargetCard target = new TargetCard(Zone.LIBRARY, filter);
|
||||||
if (cardsFromTop.count(filter, source.getSourceId(), source.getControllerId(), game) > 0
|
if (cardsFromTop.count(filter, source.getSourceId(), source.getControllerId(), game) > 0
|
||||||
&& controller.chooseUse(Outcome.PutCardInPlay, "Do you wish to put a card on the battlefield?", source, game)) {
|
&& controller.chooseUse(Outcome.PutCardInPlay, "Put a card on the battlefield?", source, game)) {
|
||||||
if (controller.choose(Outcome.PutCardInPlay, cardsFromTop, target, game)) {
|
if (controller.choose(Outcome.PutCardInPlay, cardsFromTop, target, game)) {
|
||||||
Card card = cardsFromTop.get(target.getFirstTarget(), game);
|
Card card = cardsFromTop.get(target.getFirstTarget(), game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
|
|
|
@ -62,7 +62,7 @@ class MurderOfCrowsEffect extends OneShotEffect {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player player = game.getPlayer(source.getControllerId());
|
Player player = game.getPlayer(source.getControllerId());
|
||||||
if (player != null && player.chooseUse(Outcome.DrawCard, "Do you wish to draw a card? If you do, discard a card.", source, game)) {
|
if (player != null && player.chooseUse(Outcome.DrawCard, "Draw a card? If you do, discard a card.", source, game)) {
|
||||||
if (player.drawCards(1, source, game) > 0) {
|
if (player.drawCards(1, source, game) > 0) {
|
||||||
player.discard(1, false, false, source, game);
|
player.discard(1, false, false, source, game);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,8 +77,8 @@ class OutmaneuverEffect extends AsThoughEffectImpl {
|
||||||
if (blockedCreature != null) {
|
if (blockedCreature != null) {
|
||||||
Player controller = game.getPlayer(blockedCreature.getControllerId());
|
Player controller = game.getPlayer(blockedCreature.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
return controller.chooseUse(Outcome.Damage, "Do you wish to assign combat damage for "
|
return controller.chooseUse(Outcome.Damage, "have "
|
||||||
+ blockedCreature.getLogName() + " as though it weren't blocked?", source, game);
|
+ blockedCreature.getLogName() + "assign combat damage as though it weren't blocked?", source, game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -70,7 +70,7 @@ class PrecognitionEffect extends OneShotEffect {
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
Cards cards = new CardsImpl(card);
|
Cards cards = new CardsImpl(card);
|
||||||
controller.lookAtCards("Precognition", cards, game);
|
controller.lookAtCards("Precognition", cards, game);
|
||||||
if (controller.chooseUse(outcome, "Do you wish to put card on the bottom of player's library?", source, game)) {
|
if (controller.chooseUse(outcome, "Put that card on the bottom of its owner's library?", source, game)) {
|
||||||
controller.moveCardToLibraryWithInfo(card, source, game, Zone.LIBRARY, false, false);
|
controller.moveCardToLibraryWithInfo(card, source, game, Zone.LIBRARY, false, false);
|
||||||
} else {
|
} else {
|
||||||
game.informPlayers(controller.getLogName() + " puts the card back on top of the library.");
|
game.informPlayers(controller.getLogName() + " puts the card back on top of the library.");
|
||||||
|
|
|
@ -104,7 +104,7 @@ class PsychicSurgeryEffect extends OneShotEffect {
|
||||||
if (controller != null && opponent != null) {
|
if (controller != null && opponent != null) {
|
||||||
Cards cards = new CardsImpl(opponent.getLibrary().getTopCards(game, 2));
|
Cards cards = new CardsImpl(opponent.getLibrary().getTopCards(game, 2));
|
||||||
controller.lookAtCards(source, null, cards, game);
|
controller.lookAtCards(source, null, cards, game);
|
||||||
if (!cards.isEmpty() && controller.chooseUse(Outcome.Exile, "Do you wish to exile a card?", source, game)) {
|
if (!cards.isEmpty() && controller.chooseUse(Outcome.Exile, "Exile a card?", source, game)) {
|
||||||
TargetCard target = new TargetCard(Zone.LIBRARY, new FilterCard("card to exile"));
|
TargetCard target = new TargetCard(Zone.LIBRARY, new FilterCard("card to exile"));
|
||||||
if (controller.choose(Outcome.Exile, cards, target, game)) {
|
if (controller.choose(Outcome.Exile, cards, target, game)) {
|
||||||
Card card = cards.get(target.getFirstTarget(), game);
|
Card card = cards.get(target.getFirstTarget(), game);
|
||||||
|
|
|
@ -77,7 +77,7 @@ class PuresightMerrowEffect extends OneShotEffect {
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
Cards cards = new CardsImpl(card);
|
Cards cards = new CardsImpl(card);
|
||||||
controller.lookAtCards("Puresight Merrow", cards, game);
|
controller.lookAtCards("Puresight Merrow", cards, game);
|
||||||
if (controller.chooseUse(Outcome.Removal, "Do you wish to exile the card from the top of your library?", source, game)) {
|
if (controller.chooseUse(Outcome.Removal, "Exile the card from the top of your library?", source, game)) {
|
||||||
controller.moveCardToExileWithInfo(card, source.getSourceId(), sourceObject.getIdName(), source, game, Zone.LIBRARY, true);
|
controller.moveCardToExileWithInfo(card, source.getSourceId(), sourceObject.getIdName(), source, game, Zone.LIBRARY, true);
|
||||||
} else {
|
} else {
|
||||||
game.informPlayers(controller.getLogName() + " puts the card back on top of their library.");
|
game.informPlayers(controller.getLogName() + " puts the card back on top of their library.");
|
||||||
|
|
|
@ -79,7 +79,7 @@ class QuestForUlasTempleEffect extends OneShotEffect {
|
||||||
Cards cards = new CardsImpl(card);
|
Cards cards = new CardsImpl(card);
|
||||||
controller.lookAtCards(sourcePermanent.getName(), cards, game);
|
controller.lookAtCards(sourcePermanent.getName(), cards, game);
|
||||||
if (card.isCreature()) {
|
if (card.isCreature()) {
|
||||||
if (controller.chooseUse(Outcome.DrawCard, "Do you wish to reveal the creature card at the top of the library?", source, game)) {
|
if (controller.chooseUse(Outcome.DrawCard, "Reveal the top card of your library?", source, game)) {
|
||||||
controller.revealCards(sourcePermanent.getName(), cards, game);
|
controller.revealCards(sourcePermanent.getName(), cards, game);
|
||||||
Permanent questForUlasTemple = game.getPermanent(source.getSourceId());
|
Permanent questForUlasTemple = game.getPermanent(source.getSourceId());
|
||||||
if (questForUlasTemple != null) {
|
if (questForUlasTemple != null) {
|
||||||
|
|
|
@ -71,7 +71,7 @@ class RummagingWizardLookLibraryEffect extends OneShotEffect {
|
||||||
CardsImpl cards = new CardsImpl();
|
CardsImpl cards = new CardsImpl();
|
||||||
cards.add(card);
|
cards.add(card);
|
||||||
controller.lookAtCards("Rummaging Wizard", cards, game);
|
controller.lookAtCards("Rummaging Wizard", cards, game);
|
||||||
if (controller.chooseUse(Outcome.Neutral, "Do you wish to put the card into your graveyard?", source, game)) {
|
if (controller.chooseUse(Outcome.Neutral, "Put that card into your graveyard?", source, game)) {
|
||||||
return controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
return controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ class SearchForAzcantaLookLibraryEffect extends OneShotEffect {
|
||||||
Card card = controller.getLibrary().getFromTop(game);
|
Card card = controller.getLibrary().getFromTop(game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
controller.lookAtCards(sourceObject.getIdName(), new CardsImpl(card), game);
|
controller.lookAtCards(sourceObject.getIdName(), new CardsImpl(card), game);
|
||||||
if (controller.chooseUse(Outcome.Neutral, "Do you wish to put the card into your graveyard?", source, game)) {
|
if (controller.chooseUse(Outcome.Neutral, "Put that card into your graveyard?", source, game)) {
|
||||||
controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
||||||
}
|
}
|
||||||
if (controller.getGraveyard().size() > 6 && controller.chooseUse(Outcome.Neutral, "Transform " + sourceObject.getLogName() + "?", source, game)) {
|
if (controller.getGraveyard().size() > 6 && controller.chooseUse(Outcome.Neutral, "Transform " + sourceObject.getLogName() + "?", source, game)) {
|
||||||
|
|
|
@ -143,8 +143,7 @@ class ShellOfTheLastKappaCastEffect extends OneShotEffect {
|
||||||
sourcePermanent.getZoneChangeCounter(game))), target, game)) {
|
sourcePermanent.getZoneChangeCounter(game))), target, game)) {
|
||||||
Card card = game.getCard(target.getFirstTarget());
|
Card card = game.getCard(target.getFirstTarget());
|
||||||
if (card != null
|
if (card != null
|
||||||
&& controller.chooseUse(outcome, "Do you wish to cast card exiled with "
|
&& controller.chooseUse(outcome, "Cast " + card.getLogName() + " without paying its mana cost?", source, game)) {
|
||||||
+ sourcePermanent.getLogName() + "?", source, game)) {
|
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
||||||
Boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true),
|
Boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true),
|
||||||
game, true, new ApprovingObject(source, game));
|
game, true, new ApprovingObject(source, game));
|
||||||
|
|
|
@ -65,8 +65,7 @@ class SiegeBehemothEffect extends AsThoughEffectImpl {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
Permanent otherCreature = game.getPermanent(sourceId);
|
Permanent otherCreature = game.getPermanent(sourceId);
|
||||||
if (controller != null && otherCreature != null && otherCreature.isControlledBy(controller.getId())){
|
if (controller != null && otherCreature != null && otherCreature.isControlledBy(controller.getId())){
|
||||||
return controller.chooseUse(Outcome.Damage, "Do you wish to assign damage for "
|
return controller.chooseUse(Outcome.Damage, "Have " + otherCreature.getLogName() + " assign damage as though it weren't blocked?", source, game);
|
||||||
+ otherCreature.getLogName() + " as though it weren't blocked?", source, game);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -67,7 +67,7 @@ class ThinkTankLookLibraryEffect extends OneShotEffect {
|
||||||
CardsImpl cards = new CardsImpl();
|
CardsImpl cards = new CardsImpl();
|
||||||
cards.add(card);
|
cards.add(card);
|
||||||
controller.lookAtCards("Think Tank", cards, game);
|
controller.lookAtCards("Think Tank", cards, game);
|
||||||
if (controller.chooseUse(Outcome.Neutral, "Do you wish to put the card into your graveyard?", source, game)) {
|
if (controller.chooseUse(Outcome.Neutral, "Put that card into your graveyard?", source, game)) {
|
||||||
return controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
return controller.moveCards(card, Zone.GRAVEYARD, source, game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ class PayLifeActivePlayerCost extends CostImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
int lifeToPayAmount = amount.calculate(game, ability, null);
|
int lifeToPayAmount = amount.calculate(game, ability, null);
|
||||||
if (activatingPlayer.chooseUse(Outcome.LoseLife, "Do you wish to pay " + lifeToPayAmount + " life?", ability, game)) {
|
if (activatingPlayer.chooseUse(Outcome.LoseLife, "Pay " + lifeToPayAmount + " life?", ability, game)) {
|
||||||
this.paid = CardUtil.tryPayLife(lifeToPayAmount, activatingPlayer, source, game);
|
this.paid = CardUtil.tryPayLife(lifeToPayAmount, activatingPlayer, source, game);
|
||||||
return this.paid;
|
return this.paid;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class ChancellorAbility extends StaticAbility implements OpeningHandActio
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean askUseOpeningHandAction(Card card, Player player, Game game) {
|
public boolean askUseOpeningHandAction(Card card, Player player, Game game) {
|
||||||
return player.chooseUse(Outcome.PutCardInPlay, "Do you wish to reveal " + card.getIdName() + '?', this, game);
|
return player.chooseUse(Outcome.PutCardInPlay, "Reveal " + card.getIdName() + '?', this, game);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -233,20 +233,20 @@ public class LookLibraryAndPickControllerEffect extends LookLibraryControllerEff
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getMayText() {
|
private String getMayText() {
|
||||||
StringBuilder sb = new StringBuilder("Do you wish to ");
|
StringBuilder sb = new StringBuilder();
|
||||||
switch (targetPickedCards) {
|
switch (targetPickedCards) {
|
||||||
case HAND:
|
case HAND:
|
||||||
if (revealPickedCards) {
|
if (revealPickedCards) {
|
||||||
sb.append("reveal ").append(filter.getMessage()).append(" and put into your hand");
|
sb.append("Reveal ").append(filter.getMessage()).append(" and put into your hand");
|
||||||
} else {
|
} else {
|
||||||
sb.append("put ").append(filter.getMessage()).append(" into your hand");
|
sb.append("Put ").append(filter.getMessage()).append(" into your hand");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BATTLEFIELD:
|
case BATTLEFIELD:
|
||||||
sb.append("put ").append(filter.getMessage()).append(" onto the battlefield");
|
sb.append("Put ").append(filter.getMessage()).append(" onto the battlefield");
|
||||||
break;
|
break;
|
||||||
case GRAVEYARD:
|
case GRAVEYARD:
|
||||||
sb.append("put ").append(filter.getMessage()).append(" into your graveyard");
|
sb.append("Put ").append(filter.getMessage()).append(" into your graveyard");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return sb.append('?').toString();
|
return sb.append('?').toString();
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class LookLibraryTopCardTargetPlayerEffect extends OneShotEffect {
|
||||||
player.lookAtCards(sourceObject.getIdName(), cards, game);
|
player.lookAtCards(sourceObject.getIdName(), cards, game);
|
||||||
if (putToGraveyard) {
|
if (putToGraveyard) {
|
||||||
for (Card card : cards.getCards(game)) {
|
for (Card card : cards.getCards(game)) {
|
||||||
if (player.chooseUse(outcome, "Do you wish to put card into the player's graveyard?", source, game)) {
|
if (player.chooseUse(outcome, "Put that card into its owner's graveyard?", source, game)) {
|
||||||
player.moveCardToGraveyardWithInfo(card, source, game, Zone.LIBRARY);
|
player.moveCardToGraveyardWithInfo(card, source, game, Zone.LIBRARY);
|
||||||
} else {
|
} else {
|
||||||
game.informPlayers(player.getLogName() + " puts the card back on top of the library.");
|
game.informPlayers(player.getLogName() + " puts the card back on top of the library.");
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class ShuffleIntoLibraryTargetEffect extends OneShotEffect {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (cardObject != null && controller != null && cardObject instanceof Card) {
|
if (cardObject != null && controller != null && cardObject instanceof Card) {
|
||||||
if (!optional
|
if (!optional
|
||||||
|| controller.chooseUse(Outcome.Benefit, "Do you wish to shuffle " + cardObject.getIdName() + " into "
|
|| controller.chooseUse(Outcome.Benefit, "Shuffle " + cardObject.getIdName() + " into "
|
||||||
+ (((Card) cardObject).getOwnerId().equals(source.getControllerId()) ? "your" : "its owners")
|
+ (((Card) cardObject).getOwnerId().equals(source.getControllerId()) ? "your" : "its owners")
|
||||||
+ " library?", source, game)) {
|
+ " library?", source, game)) {
|
||||||
Player owner = game.getPlayer(((Card) cardObject).getOwnerId());
|
Player owner = game.getPlayer(((Card) cardObject).getOwnerId());
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class BecomesColorOrColorsTargetEffect extends OneShotEffect {
|
||||||
if (controller != null && target != null) {
|
if (controller != null && target != null) {
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
if (!controller.chooseUse(Outcome.Neutral, "Do you wish to choose another color?", source, game)) {
|
if (!controller.chooseUse(Outcome.Neutral, "Choose another color?", source, game)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class LeylineAbility extends StaticAbility implements MageSingleton, Open
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean askUseOpeningHandAction(Card card, Player player, Game game) {
|
public boolean askUseOpeningHandAction(Card card, Player player, Game game) {
|
||||||
return player.chooseUse(Outcome.PutCardInPlay, "Do you wish to put " + card.getName() + " on the battlefield?", this, game);
|
return player.chooseUse(Outcome.PutCardInPlay, "Put " + card.getName() + " on the battlefield?", this, game);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -352,8 +352,8 @@ public class Combat implements Serializable, Copyable<Combat> {
|
||||||
if (game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.DECLARING_ATTACKERS, attackingPlayerId, attackingPlayerId))
|
if (game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.DECLARING_ATTACKERS, attackingPlayerId, attackingPlayerId))
|
||||||
|| (!canBand && !canBandWithOther)
|
|| (!canBand && !canBandWithOther)
|
||||||
|| !player.chooseUse(Outcome.Benefit,
|
|| !player.chooseUse(Outcome.Benefit,
|
||||||
"Do you wish to " + (isBanded ? "band " + attacker.getLogName()
|
(isBanded ? "Band " + attacker.getLogName()
|
||||||
+ " with another " : "form a band with " + attacker.getLogName() + " and an ")
|
+ " with another " : "Form a band with " + attacker.getLogName() + " and an ")
|
||||||
+ "attacking creature?", null, game)) {
|
+ "attacking creature?", null, game)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,8 +167,7 @@ public class CombatGroup implements Serializable, Copyable<CombatGroup> {
|
||||||
} else {
|
} else {
|
||||||
Player player = game.getPlayer(defenderAssignsCombatDamage(game) ? defendingPlayerId : attacker.getControllerId());
|
Player player = game.getPlayer(defenderAssignsCombatDamage(game) ? defendingPlayerId : attacker.getControllerId());
|
||||||
if ((attacker.getAbilities().containsKey(DamageAsThoughNotBlockedAbility.getInstance().getId()) &&
|
if ((attacker.getAbilities().containsKey(DamageAsThoughNotBlockedAbility.getInstance().getId()) &&
|
||||||
player.chooseUse(Outcome.Damage, "Do you wish to assign damage for "
|
player.chooseUse(Outcome.Damage, "Have " + attacker.getLogName() + " assign damage as though it weren't blocked?", null, game)) ||
|
||||||
+ attacker.getLogName() + " as though it weren't blocked?", null, game)) ||
|
|
||||||
game.getContinuousEffects().asThough(attacker.getId(), AsThoughEffectType.DAMAGE_NOT_BLOCKED,
|
game.getContinuousEffects().asThough(attacker.getId(), AsThoughEffectType.DAMAGE_NOT_BLOCKED,
|
||||||
null, attacker.getControllerId(), game) != null) {
|
null, attacker.getControllerId(), game) != null) {
|
||||||
// for handling creatures like Thorn Elemental
|
// for handling creatures like Thorn Elemental
|
||||||
|
@ -887,7 +886,7 @@ public class CombatGroup implements Serializable, Copyable<CombatGroup> {
|
||||||
// 10/4/2004 If it is blocked but then all of its blockers are removed before combat damage is assigned, then it won't be able to deal combat damage and you won't be able to use its ability.
|
// 10/4/2004 If it is blocked but then all of its blockers are removed before combat damage is assigned, then it won't be able to deal combat damage and you won't be able to use its ability.
|
||||||
// (same principle should apply if it's blocking and its blocked attacker is removed from combat)
|
// (same principle should apply if it's blocking and its blocked attacker is removed from combat)
|
||||||
if (!((blocked && blockers.isEmpty() && isAttacking) || (attackers.isEmpty() && !isAttacking)) && canDamage(creature, first)) {
|
if (!((blocked && blockers.isEmpty() && isAttacking) || (attackers.isEmpty() && !isAttacking)) && canDamage(creature, first)) {
|
||||||
if (player.chooseUse(Outcome.Damage, "Do you wish to assign " + creature.getLogName() + "'s combat damage divided among defending player and/or any number of defending creatures?", null, game)) {
|
if (player.chooseUse(Outcome.Damage, "Have " + creature.getLogName() + " assign its combat damage divided among defending player and/or any number of defending creatures?", null, game)) {
|
||||||
defendingPlayerAndOrDefendingCreaturesDividedDamage(creature, player, first, game, isAttacking);
|
defendingPlayerAndOrDefendingCreaturesDividedDamage(creature, player, first, game, isAttacking);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue