diff --git a/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java b/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java index 79c3ccbbd41..a37b2a7f22e 100644 --- a/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java +++ b/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java @@ -121,9 +121,11 @@ class OrzhovAdvokistEffect extends OneShotEffect { } } for (UUID playerId : players) { - FilterCreaturePermanent filter = new FilterCreaturePermanent(); - filter.add(new ControllerIdPredicate(playerId)); - game.addEffect(new CantAttackYouAllEffect(Duration.UntilYourNextTurn, filter, true), source); + if (playerId != source.getControllerId()) { + FilterCreaturePermanent filter = new FilterCreaturePermanent(); + filter.add(new ControllerIdPredicate(playerId)); + game.addEffect(new CantAttackYouAllEffect(Duration.UntilYourNextTurn, filter, true), source); + } } return true; } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/restriction/CantAttackTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/restriction/CantAttackTest.java index cdc730036d4..f737349a1a5 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/restriction/CantAttackTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/restriction/CantAttackTest.java @@ -140,4 +140,31 @@ public class CantAttackTest extends CardTestPlayerBase { assertTapped("Battle-Mad Ronin", false); } + + // Orzhov Advokist's ability does not work. Your opponents get the counters but they can still attack you. + @Test + public void testOrzhovAdvokist() { + addCard(Zone.BATTLEFIELD, playerA, "Plains", 3); + // At the beginning of your upkeep, each player may put two +1/+1 counters on a creature he or she controls. + // If a player does, creatures that player controls can't attack you or a planeswalker you control until your next turn. + addCard(Zone.HAND, playerA, "Orzhov Advokist"); // Creature {2}{W} 1/4 + + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Orzhov Advokist"); + setChoice(playerA, "Yes"); + setChoice(playerB, "Yes"); + attack(2, playerB, "Silvercoat Lion"); + attack(4, playerB, "Silvercoat Lion"); + setStopAt(4, PhaseStep.POSTCOMBAT_MAIN); + + execute(); + + assertPermanentCount(playerA, "Orzhov Advokist", 1); + assertPowerToughness(playerA, "Orzhov Advokist", 3, 6); + assertLife(playerA, 18); + assertTapped("Silvercoat Lion", false); + assertPowerToughness(playerB, "Silvercoat Lion", 4, 4); + } + } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouAllEffect.java index c681328c3cc..82410c702b7 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouAllEffect.java @@ -75,8 +75,13 @@ public class CantAttackYouAllEffect extends RestrictionEffect { @Override public boolean canAttack(Permanent attacker, UUID defenderId, Ability source, Game game) { - return (!alsoPlaneswalker && !defenderId.equals(source.getControllerId())) - || (alsoPlaneswalker && !(source.getControllerId().equals(game.getCombat().getDefendingPlayerId(attacker.getId(), game)))); + if (alsoPlaneswalker) { + Permanent planeswalker = game.getPermanent(defenderId); + if (planeswalker != null) { + defenderId = planeswalker.getControllerId(); + } + } + return !defenderId.equals(source.getControllerId()); } @Override