diff --git a/forge-game/src/main/java/forge/game/ability/effects/PhasesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PhasesEffect.java index d18ba7177c4..6abe1e7ac55 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PhasesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PhasesEffect.java @@ -9,8 +9,10 @@ import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.card.CardCollectionView; +import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; +import forge.util.Localizer; public class PhasesEffect extends SpellAbilityEffect { @@ -36,7 +38,8 @@ public class PhasesEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { CardCollectionView tgtCards; - final Game game = sa.getActivatingPlayer().getGame(); + final Player activator = sa.getActivatingPlayer(); + final Game game = activator.getGame(); final Card source = sa.getHostCard(); final boolean phaseInOrOut = sa.hasParam("PhaseInOrOut"); final boolean wontPhaseInNormal = sa.hasParam("WontPhaseInNormal"); @@ -53,6 +56,11 @@ public class PhasesEffect extends SpellAbilityEffect { } else { tgtCards = getTargetCards(sa); } + if (sa.hasParam("AnyNumber")) { + tgtCards = activator.getController().chooseCardsForEffect(tgtCards, sa, + Localizer.getInstance().getMessage("lblChooseAnyNumberToPhase"), + 0, tgtCards.size(), true, null); + } if (phaseInOrOut) { // Time and Tide and Oubliette for (final Card tgtC : tgtCards) { tgtC.phase(false); diff --git a/forge-gui/res/cardsfolder/upcoming/change_of_plans.txt b/forge-gui/res/cardsfolder/upcoming/change_of_plans.txt new file mode 100644 index 00000000000..67a26a9da4a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/change_of_plans.txt @@ -0,0 +1,8 @@ +Name:Change of Plans +ManaCost:X 1 U +Types:Instant +A:SP$ Connive | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select X target creatures you control | TargetMin$ X | TargetMax$ X | SubAbility$ DBPhase | SpellDescription$ Each of X target creatures you control connive. +SVar:DBPhase:DB$ Phases | Defined$ Targeted | AnyNumber$ True | StackDescription$ {p:You} may have any number of them phase out. | SpellDescription$ You may have any number of them phase out. (To have a creature connive, draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on that creature. Treat phased out permanents and anything attached to them as though they don't exist until their controller's next turn.) +SVar:X:Count$xPaid +DeckHas:Ability$Discard|Counters +Oracle:Each of X target creatures you control connive. You may have any number of them phase out. (To have a creature connive, draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on that creature. Treat phased out permanents and anything attached to them as though they don't exist until their controller's next turn.) diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index d47d2bdac4f..b84037e99ac 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1989,6 +1989,8 @@ lblChooseCreatureToBeTop=Welche Kreatur soll oben liegen? lblLookingCardFrom=Karten ansehen von lblRevealingCardFrom=Zeige Karten von lblRevealCardToOtherPlayers=Zeige die Karten den anderen Spielern? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Wähle bis zu lblSelectCardToPlay=Wähle Karte zum Spielen diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index f91adef192a..81a9f3af09c 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1990,6 +1990,8 @@ lblChooseCreatureToBeTop=Choose which creature to be the top lblLookingCardFrom=Looking at cards from lblRevealingCardFrom=Revealing cards from lblRevealCardToOtherPlayers=Reveal cards to other players? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Choose up to lblSelectCardToPlay=Select a card to play diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index aafa6b8a886..238d069eb91 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1988,6 +1988,8 @@ lblChooseCreatureToBeTop=Elige qué criatura estará en la parte superior lblLookingCardFrom=Mirando las cartas de lblRevealingCardFrom=Mostrando las cartas de lblRevealCardToOtherPlayers=¿Mostrar las cartas a otros jugadores? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Elige hasta lblSelectCardToPlay=Selecciona una carta para jugar diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index d46d599f5dd..0c9e62da3c8 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -1987,6 +1987,8 @@ lblChooseCreatureToBeTop=Scegli quale creatura mettere sopra lblLookingCardFrom=Guardando le carte da lblRevealingCardFrom=Sto mostrando le carte da lblRevealCardToOtherPlayers=Rivela carte agli altri giocatori? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Scegli fino a lblSelectCardToPlay=Seleziona una carta da giocare diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 362cef9dff4..499df84b688 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -1987,6 +1987,8 @@ lblChooseCreatureToBeTop=トップに置けるクリーチャーをを選ぶ lblLookingCardFrom=からカードを見ています lblRevealingCardFrom=カードを公開: lblRevealCardToOtherPlayers=カードを他のプレイヤーに公開しますか? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=選択、最大 lblSelectCardToPlay=プレイするカードを選ぶ diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index 4a816164188..d99b3933f0d 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -2049,6 +2049,8 @@ lblChooseCreatureToBeTop=Escolha qual criatura será o topo lblLookingCardFrom=Olhando para cartões de lblRevealingCardFrom=Revelando cartas de lblRevealCardToOtherPlayers=Revelar cartas a outros jogadores? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Escolha até lblSelectCardToPlay=Escolha uma carta para jogar diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index ae8984ecf9d..5b23ecc0eea 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1991,6 +1991,8 @@ lblChooseCreatureToBeTop=选择哪个生物放在上面 lblLookingCardFrom=看卡 lblRevealingCardFrom=展示牌自 lblRevealCardToOtherPlayers=向其他玩家展示牌? +#PhasesEffect.java +lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=最多选择 lblSelectCardToPlay=选择要使用的牌