diff --git a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java index 3abe238a3b0..f168cd1c3dd 100644 --- a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java +++ b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java @@ -370,6 +370,7 @@ public class TestPlayer implements Player { } for (Ability ability : computerPlayer.getPlayable(game, true)) { if (ability.toString().startsWith(groups[0])) { + int bookmark = game.bookmarkState(); Ability newAbility = ability.copy(); if (groups.length > 1 && !groups[1].equals("target=NO_TARGET")) { if (!addTargets(newAbility, groups, game)) { @@ -377,9 +378,13 @@ public class TestPlayer implements Player { break; } } - computerPlayer.activateAbility((ActivatedAbility) newAbility, game); - actions.remove(action); - return true; + if (computerPlayer.activateAbility((ActivatedAbility) newAbility, game)) { + actions.remove(action); + return true; + } else { + game.restoreState(bookmark, ability.getRule()); + } + } } } else if (action.getAction().startsWith("manaActivate:")) { diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 3ce3070c96e..b6d6cb24050 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -1105,7 +1105,7 @@ public abstract class PlayerImpl implements Player, Serializable { return false; } - private void restoreState(int bookmark, String text, Game game) { + protected void restoreState(int bookmark, String text, Game game) { game.restoreState(bookmark, text); if (storedBookmark >= bookmark) { resetStoredBookmark(game);