Merge pull request #13645 from balazskristof/fix-pit-of-offerings-targeting

Fix Pit of Offerings targeting
This commit is contained in:
Grath 2025-05-17 10:48:36 -04:00 committed by GitHub
commit 06242496d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -28,6 +28,7 @@ import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.TargetCard; import mage.target.TargetCard;
import mage.target.common.TargetCardInGraveyard;
import mage.util.CardUtil; import mage.util.CardUtil;
import java.util.*; import java.util.*;
@ -47,7 +48,9 @@ public final class PitOfOfferings extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new EntersBattlefieldTappedAbility());
// When Pit of Offerings enters the battlefield, exile up to three target cards from graveyards. // When Pit of Offerings enters the battlefield, exile up to three target cards from graveyards.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PitOfOfferingsEffect(), false)); Ability ability = new EntersBattlefieldTriggeredAbility(new PitOfOfferingsEffect(), false);
ability.addTarget(new TargetCardInGraveyard(0, 3));
this.addAbility(ability);
// {T}: Add {C}. // {T}: Add {C}.
this.addAbility(new ColorlessManaAbility()); this.addAbility(new ColorlessManaAbility());
@ -124,8 +127,6 @@ class PitOfOfferingsEffect extends OneShotEffect {
), game); ), game);
} }
private static final FilterCard filter = new FilterCard("cards from graveyards");
public PitOfOfferingsEffect() { public PitOfOfferingsEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "exile up to three target cards from graveyards"; staticText = "exile up to three target cards from graveyards";
@ -142,16 +143,11 @@ class PitOfOfferingsEffect extends OneShotEffect {
if (controller == null || sourceObject == null) { if (controller == null || sourceObject == null) {
return false; return false;
} }
Cards cardsExiled = new CardsImpl(getTargetPointer().getTargets(game, source));
TargetCard target = new TargetCard(0, 3, Zone.GRAVEYARD, filter); controller.moveCardsToExile(
if (target.choose(outcome, source.getControllerId(), source.getSourceId(), source, game)) { cardsExiled.getCards(game), source, game, true,
Cards cardsExiled = new CardsImpl(); getExileZoneId(sourceObject, game), sourceObject.getIdName()
cardsExiled.addAll(target.getTargets()); );
controller.moveCardsToExile(
cardsExiled.getCards(game), source, game, true,
getExileZoneId(sourceObject, game), sourceObject.getIdName()
);
}
return true; return true;
} }