Fix ArachnePsionicWeaver incorrectly targeting

This commit is contained in:
Steven Knipe 2025-09-21 20:17:05 -07:00
parent 23f32bcd61
commit db823de8cd
2 changed files with 7 additions and 5 deletions

View file

@ -4,6 +4,7 @@ import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.OneShotNonTargetEffect;
import mage.abilities.effects.common.ChooseCardTypeEffect; import mage.abilities.effects.common.ChooseCardTypeEffect;
import mage.abilities.effects.common.LookAtTargetPlayerHandEffect; import mage.abilities.effects.common.LookAtTargetPlayerHandEffect;
import mage.abilities.effects.common.cost.SpellsCostIncreasingAllEffect; import mage.abilities.effects.common.cost.SpellsCostIncreasingAllEffect;
@ -45,14 +46,14 @@ public final class ArachnePsionicWeaver extends CardImpl {
// Web-slinging {W} // Web-slinging {W}
this.addAbility(new WebSlingingAbility(this, "{W}")); this.addAbility(new WebSlingingAbility(this, "{W}"));
// As Arachne enters, look at target opponent's hand, then choose a noncreature card type. // As Arachne enters, look at an opponents hand, then choose a card type other than creature.
List<CardType> types = Arrays.stream(CardType.values()).filter(cardType -> cardType != CardType.CREATURE) List<CardType> types = Arrays.stream(CardType.values()).filter(cardType -> cardType != CardType.CREATURE)
.collect(Collectors.toList()); .collect(Collectors.toList());
Ability ability = new AsEntersBattlefieldAbility(new LookAtTargetPlayerHandEffect()); Ability ability = new AsEntersBattlefieldAbility(new OneShotNonTargetEffect(
new LookAtTargetPlayerHandEffect().setText("look at an opponent's hand"), new TargetOpponent()));
ability.addEffect(new ChooseCardTypeEffect(Outcome.Benefit, types) ability.addEffect(new ChooseCardTypeEffect(Outcome.Benefit, types)
.setText("choose a noncreature card type") .setText("choose a card type other than creature")
.concatBy(", then")); .concatBy(", then"));
ability.addTarget(new TargetOpponent());
this.addAbility(ability); this.addAbility(ability);
// Spells of the chosen type cost {1} more to cast. // Spells of the chosen type cost {1} more to cast.

View file

@ -42,6 +42,7 @@ public class ArachnePsionicWeaverTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Plains"); addCard(Zone.BATTLEFIELD, playerB, "Plains");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, arachnePsionicWeaver); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, arachnePsionicWeaver);
setChoice(playerA, playerB.getName());
setChoice(playerA, CardType.ARTIFACT.toString()); setChoice(playerA, CardType.ARTIFACT.toString());
checkPlayableAbility("Player A can't cast Tormod's", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Cast " + tormodsCrypt, false); checkPlayableAbility("Player A can't cast Tormod's", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Cast " + tormodsCrypt, false);
@ -50,4 +51,4 @@ public class ArachnePsionicWeaverTest extends CardTestPlayerBase {
setStopAt(2, PhaseStep.PRECOMBAT_MAIN); setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
execute(); execute();
} }
} }