From 0ce13bf676f8f7a0f9d4def87a91c0fed482686a Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Tue, 5 Sep 2017 16:20:58 +0200 Subject: [PATCH] * Grenzo, Havoc Raiser - Fixed that blocked the game. --- .../src/mage/cards/g/GrenzoHavocRaiser.java | 4 ++-- .../combat/AttacksIfAbleTargetEffect.java | 4 ++-- .../common/combat/CantAttackYouEffect.java | 14 +------------- .../common/combat/GoadTargetEffect.java | 19 +++++++++++++------ 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/Mage.Sets/src/mage/cards/g/GrenzoHavocRaiser.java b/Mage.Sets/src/mage/cards/g/GrenzoHavocRaiser.java index bf163641dcb..60786e5e2e6 100644 --- a/Mage.Sets/src/mage/cards/g/GrenzoHavocRaiser.java +++ b/Mage.Sets/src/mage/cards/g/GrenzoHavocRaiser.java @@ -54,7 +54,7 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.ExileZone; import mage.game.Game; -import mage.game.events.DamageEvent; +import mage.game.events.DamagedEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.ManaPoolItem; @@ -125,7 +125,7 @@ class GrenzoHavocRaiserTriggeredAbility extends TriggeredAbilityImpl { Player damagedPlayer = game.getPlayer(event.getPlayerId()); Permanent permanent = game.getPermanentOrLKIBattlefield(event.getSourceId()); if (damagedPlayer != null && permanent != null - && ((DamageEvent) event).isCombatDamage() + && ((DamagedEvent) event).isCombatDamage() && getControllerId().equals(permanent.getControllerId())) { FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + damagedPlayer.getLogName() + " controls"); filter.add(new ControllerIdPredicate(damagedPlayer.getId())); diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleTargetEffect.java index cc9600fb9c2..6a5f2e3d903 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/AttacksIfAbleTargetEffect.java @@ -74,9 +74,9 @@ public class AttacksIfAbleTargetEffect extends RequirementEffect { return staticText; } if (this.duration == Duration.EndOfTurn) { - return new StringBuilder("Target ").append(mode.getTargets().get(0).getTargetName()).append(" attacks this turn if able").toString(); + return "Target " + mode.getTargets().get(0).getTargetName() + " attacks this turn if able"; } else { - return new StringBuilder("Target ").append(mode.getTargets().get(0).getTargetName()).append(" attacks each turn if able").toString(); + return "Target " + mode.getTargets().get(0).getTargetName() + " attacks each turn if able"; } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouEffect.java index 42907477df9..314897ecba0 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackYouEffect.java @@ -40,15 +40,8 @@ import mage.game.permanent.Permanent; */ public class CantAttackYouEffect extends RestrictionEffect { - private boolean canAttackYouAnyway = false; - public CantAttackYouEffect(Duration duration) { - this(duration, false); - } - - public CantAttackYouEffect(Duration duration, boolean canAttackYouAnyway) { super(duration); - this.canAttackYouAnyway = canAttackYouAnyway; } public CantAttackYouEffect(final CantAttackYouEffect effect) { @@ -67,11 +60,6 @@ public class CantAttackYouEffect extends RestrictionEffect { @Override public boolean canAttack(Permanent attacker, UUID defenderId, Ability source, Game game) { - for (UUID player : game.getOpponents(source.getId())) { - if (attacker.canAttack(player, game)) { - return false; - } - } - return !canAttackYouAnyway; + return !defenderId.equals(source.getControllerId()); } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/GoadTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/GoadTargetEffect.java index 8384f291b9f..5b5a7b55dd3 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/GoadTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/GoadTargetEffect.java @@ -33,6 +33,8 @@ import mage.abilities.effects.OneShotEffect; import mage.constants.Duration; import mage.constants.Outcome; import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; import mage.target.targetpointer.FixedTarget; /** @@ -63,12 +65,17 @@ public class GoadTargetEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - ContinuousEffect effect = new AttacksIfAbleTargetEffect(Duration.UntilYourNextTurn); - effect.setTargetPointer(new FixedTarget(getTargetPointer().getFirst(game, source))); - game.addEffect(effect, source); - effect = new CantAttackYouEffect(Duration.UntilYourNextTurn, true); - effect.setTargetPointer(new FixedTarget(getTargetPointer().getFirst(game, source))); - game.addEffect(effect, source); + Permanent targetCreature = game.getPermanent(getTargetPointer().getFirst(game, source)); + Player controller = game.getPlayer(source.getControllerId()); + if (targetCreature != null && controller != null) { + ContinuousEffect effect = new AttacksIfAbleTargetEffect(Duration.UntilYourNextTurn); + effect.setTargetPointer(new FixedTarget(getTargetPointer().getFirst(game, source))); + game.addEffect(effect, source); + effect = new CantAttackYouEffect(Duration.UntilYourNextTurn); + effect.setTargetPointer(new FixedTarget(getTargetPointer().getFirst(game, source))); + game.addEffect(effect, source); + game.informPlayers(controller.getLogName() + " is goating " + targetCreature.getLogName()); + } return true; } }