Add "when you become targeted" ability

master
Ada Joule 2018-11-06 11:17:39 +07:00 committed by Melvin Zhang
parent 54fb042aae
commit 1d7bdc0cbb
2 changed files with 23 additions and 0 deletions

View File

@ -1416,6 +1416,15 @@ public enum MagicAbility {
));
}
},
WhenYouTargeted("When(ever)? you become the target of (?<wordrun>[^\\,]*), " + ARG.EFFECT, 0) {
@Override
protected void addAbilityImpl(final MagicAbilityStore card, final Matcher arg) {
card.add(BecomesTargetTrigger.createYou(
MagicTargetFilterFactory.ItemOnStack(ARG.wordrun(arg)),
MagicRuleEventAction.create(ARG.effect(arg))
));
}
},
WhenTargeted("When(ever)? " + ARG.WORDRUN2 + " becomes the target of (?<wordrun>[^\\,]*), " + ARG.EFFECT, 0) {
@Override
protected void addAbilityImpl(final MagicAbilityStore card, final Matcher arg) {

View File

@ -34,6 +34,20 @@ public abstract class BecomesTargetTrigger extends MagicTrigger<MagicItemOnStack
};
}
public static BecomesTargetTrigger createYou(final MagicTargetFilter<MagicItemOnStack> ifilter, final MagicSourceEvent sourceEvent) {
return new BecomesTargetTrigger() {
@Override
public boolean accept(final MagicPermanent permanent, final MagicItemOnStack itemOnStack) {
return itemOnStack.getTarget() == permanent.getController() &&
ifilter.accept(permanent, permanent.getController(), itemOnStack);
}
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicItemOnStack itemOnStack) {
return sourceEvent.getTriggerEvent(permanent, itemOnStack);
}
};
}
public static BecomesTargetTrigger create(final MagicTargetFilter<MagicPermanent> pfilter, final MagicTargetFilter<MagicItemOnStack> ifilter, final MagicSourceEvent sourceEvent) {
return new BecomesTargetTrigger() {
@Override