diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 30b7ee9cef5..040e11893ae 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -973,13 +973,16 @@ public class ChangeZoneEffect extends SpellAbilityEffect { int changeNum = sa.hasParam("ChangeNum") ? AbilityUtils.calculateAmount(source, sa.getParam("ChangeNum"), sa) : 1; - final boolean optional = sa.hasParam("Optional"); - if (optional) { + if (sa.hasParam("Optional")) { String prompt; - if (defined) { - prompt = Localizer.getInstance().getMessage("lblPutThatCardFromPlayerOriginToDestination", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase(), destination.getTranslatedName().toLowerCase()); + if (sa.hasParam("OptionalPrompt")) { + prompt = sa.getParam("OptionalPrompt"); } else { - prompt = Localizer.getInstance().getMessage("lblSearchPlayerZoneConfirm", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase()); + if (defined) { + prompt = Localizer.getInstance().getMessage("lblPutThatCardFromPlayerOriginToDestination", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase(), destination.getTranslatedName().toLowerCase()); + } else { + prompt = Localizer.getInstance().getMessage("lblSearchPlayerZoneConfirm", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase()); + } } String message = MessageUtil.formatMessage(prompt , decider, player); if (!decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message, null)) { diff --git a/forge-gui/res/cardsfolder/upcoming/kenessos_priest_of_thassa.txt b/forge-gui/res/cardsfolder/upcoming/kenessos_priest_of_thassa.txt new file mode 100644 index 00000000000..389e13d5a33 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/kenessos_priest_of_thassa.txt @@ -0,0 +1,13 @@ +Name:Kenessos, Priest of Thassa +ManaCost:1 U +Types:Legendary Creature Merfolk Cleric +PT:1/3 +R:Event$ Scry | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ ScryP1 | Description$ If you would scry a number of cards, scry that many cards plus one instead. +SVar:ScryP1:DB$ ReplaceEffect | VarName$ Num | VarValue$ X +SVar:X:ReplaceCount$Num/Plus.1 +A:AB$ Dig | Cost$ 3 GU | DigNum$ 1 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature.Kraken,Creature.Leviathan,Creature.Octopus,Creature.Serpent | ForceRevealToController$ True | AILogic$ AlwaysConfirm | DestinationZone$ Battlefield | LibraryPosition2$ 0 | RememberMovedToZone$ 2 | SubAbility$ DBBottom | StackDescription$ {p:You} looks at the top card of their library. If it's a Kraken, Leviathan, Octopus, or Serpent creature card, they may put it onto the battlefield. | SpellDescription$ Look at the top card of your library. If it's a Kraken, Leviathan, Octopus, or Serpent creature card, you may put it onto the battlefield. +SVar:DBBottom:DB$ ChangeZone | ConditionDefined$ Remembered | ConditionPresent$ Card | Defined$ Remembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | Optional$ True | OptionalPrompt$ Put that card on the bottom of your library? | SubAbility$ DBCleanup | StackDescription$ If they don't put the card onto the battlefield, they may put it on the bottom of their library. | SpellDescription$ If you don't put the card onto the battlefield, you may put it on the bottom of your library. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +AI:RemoveDeck:Random +DeckHints:Type$Kraken|Leviathan|Octopus|Serpent +Oracle:If you would scry a number of cards, scry that many cards plus one instead.\n{3}{G/U}: Look at the top card of your library. If it's a Kraken, Leviathan, Octopus, or Serpent creature card, you may put it onto the battlefield. If you don't put the card onto the battlefield, you may put it on the bottom of your library.