From cd6c5aa7ac7b3ed27d8e5367d33f7f8a33fb6648 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Thu, 5 Oct 2023 22:03:23 -0400 Subject: [PATCH] improve usability of Rebound ability (#11261) * remove boilerplate template comments * fix Rebound, now need to choose only once * fix text: Harmless Assault --- Mage.Sets/src/mage/cards/h/HarmlessAssault.java | 9 ++++----- .../test/cards/abilities/keywords/ReboundTest.java | 11 +++++++---- .../BeginningOfPreCombatMainTriggeredAbility.java | 4 ---- .../common/DiscardsACardOpponentTriggeredAbility.java | 4 ---- ...eginOfYourNextDrawStepDelayedTriggeredAbility.java | 5 ----- ...eBeginOfYourNextUpkeepDelayedTriggeredAbility.java | 5 ----- .../decorator/ConditionalActivatedAbility.java | 4 ---- ...eventNextDamageFromChosenSourceToTargetEffect.java | 4 ---- .../PreventNextDamageFromChosenSourceToYouEffect.java | 4 ---- .../java/mage/abilities/keyword/ReboundAbility.java | 2 +- Mage/src/main/java/mage/constants/MageObjectType.java | 4 ---- .../filter/common/FilterControlledCreatureSpell.java | 4 ---- .../java/mage/filter/common/FilterCreatureSpell.java | 4 ---- .../filter/common/FilterInstantOrSorceryCard.java | 6 +----- 14 files changed, 13 insertions(+), 57 deletions(-) diff --git a/Mage.Sets/src/mage/cards/h/HarmlessAssault.java b/Mage.Sets/src/mage/cards/h/HarmlessAssault.java index 90420a78df8..1c4680e7826 100644 --- a/Mage.Sets/src/mage/cards/h/HarmlessAssault.java +++ b/Mage.Sets/src/mage/cards/h/HarmlessAssault.java @@ -1,4 +1,3 @@ - package mage.cards.h; import java.util.UUID; @@ -15,13 +14,13 @@ import mage.filter.common.FilterAttackingCreature; */ public final class HarmlessAssault extends CardImpl { + private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking creatures"); + public HarmlessAssault(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}{W}"); - - // Prevent all combat damage that would be dealt this turn by attacking - // creatures. - this.getSpellAbility().addEffect(new PreventAllDamageByAllPermanentsEffect(new FilterAttackingCreature(), Duration.EndOfTurn, true)); + // Prevent all combat damage that would be dealt this turn by attacking creatures. + this.getSpellAbility().addEffect(new PreventAllDamageByAllPermanentsEffect(filter, Duration.EndOfTurn, true)); } private HarmlessAssault(final HarmlessAssault card) { diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ReboundTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ReboundTest.java index f17bca8950a..ff0f80c3c2e 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ReboundTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ReboundTest.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package org.mage.test.cards.abilities.keywords; import mage.constants.PhaseStep; @@ -39,6 +35,7 @@ public class ReboundTest extends CardTestPlayerBase { castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Distortion Strike", "Memnite"); + setStrictChooseMode(true); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); @@ -63,6 +60,11 @@ public class ReboundTest extends CardTestPlayerBase { castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Distortion Strike", "Memnite"); + // Yes to rebound + setChoice(playerA, true); + addTarget(playerA, "Memnite"); + + setStrictChooseMode(true); setStopAt(3, PhaseStep.PRECOMBAT_MAIN); execute(); @@ -91,6 +93,7 @@ public class ReboundTest extends CardTestPlayerBase { castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Distortion Strike", "Memnite"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Counterspell", "Distortion Strike"); + setStrictChooseMode(true); setStopAt(3, PhaseStep.PRECOMBAT_MAIN); execute(); diff --git a/Mage/src/main/java/mage/abilities/common/BeginningOfPreCombatMainTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BeginningOfPreCombatMainTriggeredAbility.java index 0ed8b533c81..94bdcffc3fb 100644 --- a/Mage/src/main/java/mage/abilities/common/BeginningOfPreCombatMainTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/BeginningOfPreCombatMainTriggeredAbility.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.common; import mage.abilities.TriggeredAbilityImpl; diff --git a/Mage/src/main/java/mage/abilities/common/DiscardsACardOpponentTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiscardsACardOpponentTriggeredAbility.java index d750036d8ae..dc0ed90538a 100644 --- a/Mage/src/main/java/mage/abilities/common/DiscardsACardOpponentTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiscardsACardOpponentTriggeredAbility.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.common; import mage.abilities.TriggeredAbilityImpl; diff --git a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextDrawStepDelayedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextDrawStepDelayedTriggeredAbility.java index 7fe37d42791..c30fcfdf803 100644 --- a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextDrawStepDelayedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextDrawStepDelayedTriggeredAbility.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.common.delayed; import mage.abilities.DelayedTriggeredAbility; @@ -43,4 +39,3 @@ public class AtTheBeginOfYourNextDrawStepDelayedTriggeredAbility extends Delayed return event.getPlayerId().equals(this.controllerId); } } - diff --git a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility.java index bae6e4ad99b..96d963f7c18 100644 --- a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.common.delayed; import mage.abilities.DelayedTriggeredAbility; @@ -43,4 +39,3 @@ public class AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility extends DelayedTr return event.getPlayerId().equals(this.controllerId); } } - diff --git a/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java b/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java index 4223f7b9ecb..6d511edca14 100644 --- a/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/decorator/ConditionalActivatedAbility.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.decorator; import mage.abilities.ActivatedAbilityImpl; diff --git a/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToTargetEffect.java index d98c4b228bd..2ea6c190a82 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToTargetEffect.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.effects.common; import mage.MageObject; diff --git a/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java b/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java index 1f90ded8fd4..b8468ab444a 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.effects.common; import mage.abilities.Ability; diff --git a/Mage/src/main/java/mage/abilities/keyword/ReboundAbility.java b/Mage/src/main/java/mage/abilities/keyword/ReboundAbility.java index 3ea68097574..f1212254c08 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ReboundAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ReboundAbility.java @@ -127,7 +127,7 @@ class ReboundCastFromHandReplacementEffect extends ReplacementEffectImpl { class ReboundEffectCastFromExileDelayedTrigger extends DelayedTriggeredAbility { ReboundEffectCastFromExileDelayedTrigger(Card card, Game game) { - super(new ReboundCastSpellFromExileEffect().setTargetPointer(new FixedTarget(card, game)), Duration.Custom, true, true); + super(new ReboundCastSpellFromExileEffect().setTargetPointer(new FixedTarget(card, game)), Duration.Custom, true, false); } private ReboundEffectCastFromExileDelayedTrigger(final ReboundEffectCastFromExileDelayedTrigger ability) { diff --git a/Mage/src/main/java/mage/constants/MageObjectType.java b/Mage/src/main/java/mage/constants/MageObjectType.java index 17bf39f3f66..0a486ec4ce6 100644 --- a/Mage/src/main/java/mage/constants/MageObjectType.java +++ b/Mage/src/main/java/mage/constants/MageObjectType.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.constants; /** diff --git a/Mage/src/main/java/mage/filter/common/FilterControlledCreatureSpell.java b/Mage/src/main/java/mage/filter/common/FilterControlledCreatureSpell.java index 03a5802308f..b54b99b3d95 100644 --- a/Mage/src/main/java/mage/filter/common/FilterControlledCreatureSpell.java +++ b/Mage/src/main/java/mage/filter/common/FilterControlledCreatureSpell.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.filter.common; import mage.constants.TargetController; diff --git a/Mage/src/main/java/mage/filter/common/FilterCreatureSpell.java b/Mage/src/main/java/mage/filter/common/FilterCreatureSpell.java index 7d95cb27dd7..5635438fc2a 100644 --- a/Mage/src/main/java/mage/filter/common/FilterCreatureSpell.java +++ b/Mage/src/main/java/mage/filter/common/FilterCreatureSpell.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.filter.common; import mage.constants.CardType; diff --git a/Mage/src/main/java/mage/filter/common/FilterInstantOrSorceryCard.java b/Mage/src/main/java/mage/filter/common/FilterInstantOrSorceryCard.java index fbff348fc93..9214a4380d8 100644 --- a/Mage/src/main/java/mage/filter/common/FilterInstantOrSorceryCard.java +++ b/Mage/src/main/java/mage/filter/common/FilterInstantOrSorceryCard.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.filter.common; import mage.constants.CardType; @@ -32,4 +28,4 @@ public class FilterInstantOrSorceryCard extends FilterCard { return new FilterInstantOrSorceryCard(this); } -} \ No newline at end of file +}