Merge pull request #338 from Northmoc/nccChangeOfPlans

NCC: Change of Plans and support
This commit is contained in:
Agetian
2022-05-13 06:51:30 +03:00
committed by GitHub
9 changed files with 31 additions and 1 deletions

View File

@@ -9,8 +9,10 @@ import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityEffect; import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollectionView; import forge.game.card.CardCollectionView;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.Localizer;
public class PhasesEffect extends SpellAbilityEffect { public class PhasesEffect extends SpellAbilityEffect {
@@ -36,7 +38,8 @@ public class PhasesEffect extends SpellAbilityEffect {
@Override @Override
public void resolve(SpellAbility sa) { public void resolve(SpellAbility sa) {
CardCollectionView tgtCards; CardCollectionView tgtCards;
final Game game = sa.getActivatingPlayer().getGame(); final Player activator = sa.getActivatingPlayer();
final Game game = activator.getGame();
final Card source = sa.getHostCard(); final Card source = sa.getHostCard();
final boolean phaseInOrOut = sa.hasParam("PhaseInOrOut"); final boolean phaseInOrOut = sa.hasParam("PhaseInOrOut");
final boolean wontPhaseInNormal = sa.hasParam("WontPhaseInNormal"); final boolean wontPhaseInNormal = sa.hasParam("WontPhaseInNormal");
@@ -53,6 +56,11 @@ public class PhasesEffect extends SpellAbilityEffect {
} else { } else {
tgtCards = getTargetCards(sa); 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 if (phaseInOrOut) { // Time and Tide and Oubliette
for (final Card tgtC : tgtCards) { for (final Card tgtC : tgtCards) {
tgtC.phase(false); tgtC.phase(false);

View File

@@ -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.)

View File

@@ -1989,6 +1989,8 @@ lblChooseCreatureToBeTop=Welche Kreatur soll oben liegen?
lblLookingCardFrom=Karten ansehen von lblLookingCardFrom=Karten ansehen von
lblRevealingCardFrom=Zeige Karten von lblRevealingCardFrom=Zeige Karten von
lblRevealCardToOtherPlayers=Zeige die Karten den anderen Spielern? lblRevealCardToOtherPlayers=Zeige die Karten den anderen Spielern?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=Wähle bis zu lblChooseUpTo=Wähle bis zu
lblSelectCardToPlay=Wähle Karte zum Spielen lblSelectCardToPlay=Wähle Karte zum Spielen

View File

@@ -1990,6 +1990,8 @@ lblChooseCreatureToBeTop=Choose which creature to be the top
lblLookingCardFrom=Looking at cards from lblLookingCardFrom=Looking at cards from
lblRevealingCardFrom=Revealing cards from lblRevealingCardFrom=Revealing cards from
lblRevealCardToOtherPlayers=Reveal cards to other players? lblRevealCardToOtherPlayers=Reveal cards to other players?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=Choose up to lblChooseUpTo=Choose up to
lblSelectCardToPlay=Select a card to play lblSelectCardToPlay=Select a card to play

View File

@@ -1988,6 +1988,8 @@ lblChooseCreatureToBeTop=Elige qué criatura estará en la parte superior
lblLookingCardFrom=Mirando las cartas de lblLookingCardFrom=Mirando las cartas de
lblRevealingCardFrom=Mostrando las cartas de lblRevealingCardFrom=Mostrando las cartas de
lblRevealCardToOtherPlayers=¿Mostrar las cartas a otros jugadores? lblRevealCardToOtherPlayers=¿Mostrar las cartas a otros jugadores?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=Elige hasta lblChooseUpTo=Elige hasta
lblSelectCardToPlay=Selecciona una carta para jugar lblSelectCardToPlay=Selecciona una carta para jugar

View File

@@ -1987,6 +1987,8 @@ lblChooseCreatureToBeTop=Scegli quale creatura mettere sopra
lblLookingCardFrom=Guardando le carte da lblLookingCardFrom=Guardando le carte da
lblRevealingCardFrom=Sto mostrando le carte da lblRevealingCardFrom=Sto mostrando le carte da
lblRevealCardToOtherPlayers=Rivela carte agli altri giocatori? lblRevealCardToOtherPlayers=Rivela carte agli altri giocatori?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=Scegli fino a lblChooseUpTo=Scegli fino a
lblSelectCardToPlay=Seleziona una carta da giocare lblSelectCardToPlay=Seleziona una carta da giocare

View File

@@ -1987,6 +1987,8 @@ lblChooseCreatureToBeTop=トップに置けるクリーチャーをを選ぶ
lblLookingCardFrom=からカードを見ています lblLookingCardFrom=からカードを見ています
lblRevealingCardFrom=カードを公開: lblRevealingCardFrom=カードを公開:
lblRevealCardToOtherPlayers=カードを他のプレイヤーに公開しますか? lblRevealCardToOtherPlayers=カードを他のプレイヤーに公開しますか?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=選択、最大 lblChooseUpTo=選択、最大
lblSelectCardToPlay=プレイするカードを選ぶ lblSelectCardToPlay=プレイするカードを選ぶ

View File

@@ -2049,6 +2049,8 @@ lblChooseCreatureToBeTop=Escolha qual criatura será o topo
lblLookingCardFrom=Olhando para cartões de lblLookingCardFrom=Olhando para cartões de
lblRevealingCardFrom=Revelando cartas de lblRevealingCardFrom=Revelando cartas de
lblRevealCardToOtherPlayers=Revelar cartas a outros jogadores? lblRevealCardToOtherPlayers=Revelar cartas a outros jogadores?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=Escolha até lblChooseUpTo=Escolha até
lblSelectCardToPlay=Escolha uma carta para jogar lblSelectCardToPlay=Escolha uma carta para jogar

View File

@@ -1991,6 +1991,8 @@ lblChooseCreatureToBeTop=选择哪个生物放在上面
lblLookingCardFrom=看卡 lblLookingCardFrom=看卡
lblRevealingCardFrom=展示牌自 lblRevealingCardFrom=展示牌自
lblRevealCardToOtherPlayers=向其他玩家展示牌? lblRevealCardToOtherPlayers=向其他玩家展示牌?
#PhasesEffect.java
lblChooseAnyNumberToPhase=Choose any number to phase out
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=最多选择 lblChooseUpTo=最多选择
lblSelectCardToPlay=选择要使用的牌 lblSelectCardToPlay=选择要使用的牌