Fixed the Ghostly Pilferer triggered ability (spell casts from anywhere other than their hand)

issue #6951
This commit is contained in:
Andre Cabaca 2020-08-18 12:17:40 +01:00
parent c48331f216
commit 20646da985

View file

@ -41,6 +41,10 @@ public final class GhostlyPilferer extends CardImpl {
// Whenever an opponent casts a spell from anywhere other than their hand, draw a card.
this.addAbility(new GhostlyPilfererTriggeredAbility());
/*TODO: I think this way is the optimal way(copied from counter balance):
* this.addAbility(new SpellCastOpponentTriggeredAbility(Zone.BATTLEFIELD,
* new CounterbalanceEffect(), StaticFilters.FILTER_SPELL, true, SetTargetPointer.SPELL));
*/
// Discard a card: Ghostly Pilferer can't be blocked this turn.
this.addAbility(new SimpleActivatedAbility(
@ -80,15 +84,13 @@ class GhostlyPilfererTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getZone() == Zone.HAND) {
return false;
}
Spell spell = game.getStack().getSpell(event.getTargetId());
return spell != null;
return (this.controllerId != spell.getControllerId()
&& event.getZone() != Zone.HAND);
}
@Override
public String getRule() {
return "Whenever an opponent casts a spell from anywhere other than their hand, draw a card.";
}
}
}