mirror of
https://github.com/magefree/mage.git
synced 2025-12-28 06:22:01 -08:00
fix Cracked Skull, expand LookTargetHandChooseDiscardEffect
to support FilterCard
This commit is contained in:
parent
497b4321b3
commit
e2531a4da5
4 changed files with 14 additions and 7 deletions
|
|
@ -7,6 +7,7 @@ import mage.abilities.dynamicvalue.common.StaticValue;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
|
@ -21,25 +22,28 @@ public class LookTargetHandChooseDiscardEffect extends OneShotEffect {
|
|||
|
||||
private final boolean upTo;
|
||||
private final DynamicValue numberToDiscard;
|
||||
private final FilterCard filter;
|
||||
|
||||
public LookTargetHandChooseDiscardEffect() {
|
||||
this(false, 1);
|
||||
}
|
||||
|
||||
public LookTargetHandChooseDiscardEffect(boolean upTo, int numberToDiscard) {
|
||||
this(upTo, StaticValue.get(numberToDiscard));
|
||||
this(upTo, StaticValue.get(numberToDiscard), numberToDiscard == 1 ? StaticFilters.FILTER_CARD : StaticFilters.FILTER_CARD_CARDS);
|
||||
}
|
||||
|
||||
public LookTargetHandChooseDiscardEffect(boolean upTo, DynamicValue numberToDiscard) {
|
||||
public LookTargetHandChooseDiscardEffect(boolean upTo, DynamicValue numberToDiscard, FilterCard filter) {
|
||||
super(Outcome.Discard);
|
||||
this.upTo = upTo;
|
||||
this.numberToDiscard = numberToDiscard;
|
||||
this.filter = filter;
|
||||
}
|
||||
|
||||
protected LookTargetHandChooseDiscardEffect(final LookTargetHandChooseDiscardEffect effect) {
|
||||
super(effect);
|
||||
this.upTo = effect.upTo;
|
||||
this.numberToDiscard = effect.numberToDiscard;
|
||||
this.filter = effect.filter;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -56,7 +60,7 @@ public class LookTargetHandChooseDiscardEffect extends OneShotEffect {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
TargetCard target = new TargetCardInHand(upTo ? 0 : num, num, num > 1 ? StaticFilters.FILTER_CARD_CARDS : StaticFilters.FILTER_CARD);
|
||||
TargetCard target = new TargetCardInHand(upTo ? 0 : num, num, filter);
|
||||
if (controller.choose(Outcome.Discard, player.getHand(), target, source, game)) {
|
||||
player.discard(new CardsImpl(target.getTargets()), false, source, game);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue