diff --git a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java index 1ff702d76ec..0803c3572a7 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java @@ -744,6 +744,13 @@ public abstract class SpellAbilityEffect { } else { game.getEndOfTurn().addUntilEnd(sa.getActivatingPlayer(), until); } + } else if ("UntilTheEndOfTargetedNextTurn".equals(duration)) { + Player targeted = sa.getTargets().getFirstTargetedPlayer(); + if (game.getPhaseHandler().isPlayerTurn(targeted)) { + game.getEndOfTurn().registerUntilEnd(targeted, until); + } else { + game.getEndOfTurn().addUntilEnd(targeted, until); + } } else if (duration != null && duration.startsWith("UntilAPlayerCastSpell")) { game.getStack().addCastCommand(duration.split(" ")[1], until); } else if ("UntilHostLeavesPlay".equals(duration)) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/SkipPhaseEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SkipPhaseEffect.java index a589a52d2c4..4c4ddc1f9fd 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SkipPhaseEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SkipPhaseEffect.java @@ -115,9 +115,24 @@ public class SkipPhaseEffect extends SpellAbilityEffect { } eff.addReplacementEffect(re); - game.getTriggerHandler().suppressMode(TriggerType.ChangesZone); - game.getAction().moveTo(ZoneType.Command, eff, sa, AbilityKey.newMap()); - eff.updateStateForView(); - game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); + if (sa.hasParam("Start")) { + final GameCommand startEffect = new GameCommand() { + private static final long serialVersionUID = -5861749814760561373L; + + @Override + public void run() { + game.getTriggerHandler().suppressMode(TriggerType.ChangesZone); + game.getAction().moveTo(ZoneType.Command, eff, sa, AbilityKey.newMap()); + eff.updateStateForView(); + game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); + } + }; + game.getUpkeep().addUntil(player, startEffect); + } else { + game.getTriggerHandler().suppressMode(TriggerType.ChangesZone); + game.getAction().moveTo(ZoneType.Command, eff, sa, AbilityKey.newMap()); + eff.updateStateForView(); + game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); + } } } diff --git a/forge-gui/res/cardsfolder/e/empty_city_ruse.txt b/forge-gui/res/cardsfolder/e/empty_city_ruse.txt index 76d3ed83cb5..4ecf52649c3 100644 --- a/forge-gui/res/cardsfolder/e/empty_city_ruse.txt +++ b/forge-gui/res/cardsfolder/e/empty_city_ruse.txt @@ -1,6 +1,6 @@ Name:Empty City Ruse ManaCost:W Types:Sorcery -A:SP$ SkipPhase | Cost$ W | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Phase$ Combat | Duration$ UntilTheEndOfYourNextTurn | SpellDescription$ Target opponent skips all combat phases of their next turn. +A:SP$ SkipPhase | Cost$ W | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Phase$ Combat | Start$ FromNext | Duration$ UntilTheEndOfTargetedNextTurn | SpellDescription$ Target opponent skips all combat phases of their next turn. AI:RemoveDeck:All Oracle:Target opponent skips all combat phases of their next turn. diff --git a/forge-gui/res/cardsfolder/f/false_peace.txt b/forge-gui/res/cardsfolder/f/false_peace.txt index 22f136ccf64..1f221e5f772 100644 --- a/forge-gui/res/cardsfolder/f/false_peace.txt +++ b/forge-gui/res/cardsfolder/f/false_peace.txt @@ -1,6 +1,6 @@ Name:False Peace ManaCost:W Types:Sorcery -A:SP$ SkipPhase | Cost$ W | ValidTgts$ Player | TgtPrompt$ Select target player | Phase$ Combat | Duration$ UntilTheEndOfYourNextTurn | SpellDescription$ Target player skips all combat phases of their next turn. +A:SP$ SkipPhase | Cost$ W | ValidTgts$ Player | TgtPrompt$ Select target player | Phase$ Combat | Start$ FromNext | Duration$ UntilTheEndOfTargetedNextTurn | SpellDescription$ Target player skips all combat phases of their next turn. AI:RemoveDeck:All Oracle:Target player skips all combat phases of their next turn.