add target gains pattern
parent
a7e170237c
commit
d2a369065a
|
@ -41,6 +41,7 @@ import magic.model.target.MagicWeakenTargetPicker;
|
||||||
import magic.model.target.MagicBounceTargetPicker;
|
import magic.model.target.MagicBounceTargetPicker;
|
||||||
import magic.model.target.MagicTapTargetPicker;
|
import magic.model.target.MagicTapTargetPicker;
|
||||||
import magic.model.target.MagicPreventTargetPicker;
|
import magic.model.target.MagicPreventTargetPicker;
|
||||||
|
import magic.model.target.MagicDeathtouchTargetPicker;
|
||||||
import magic.model.choice.MagicTargetChoice;
|
import magic.model.choice.MagicTargetChoice;
|
||||||
import magic.model.choice.MagicChoice;
|
import magic.model.choice.MagicChoice;
|
||||||
import magic.model.choice.MagicMayChoice;
|
import magic.model.choice.MagicMayChoice;
|
||||||
|
@ -305,6 +306,35 @@ public enum MagicRuleEventAction {
|
||||||
return Character.toUpperCase(ability.charAt(0)) + ability.substring(1);
|
return Character.toUpperCase(ability.charAt(0)) + ability.substring(1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
GainChosen(
|
||||||
|
"(?<choice>[^\\.]*) gains (?<ability>[^\\.]*) until end of turn.",
|
||||||
|
MagicTargetHint.Positive
|
||||||
|
) {
|
||||||
|
public MagicEventAction getAction(final String rule) {
|
||||||
|
final Matcher matcher = matched(rule);
|
||||||
|
final MagicAbility ability = MagicAbility.getAbility(matcher.group("ability"));
|
||||||
|
return new MagicEventAction() {
|
||||||
|
@Override
|
||||||
|
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||||
|
event.processTargetPermanent(game,new MagicPermanentAction() {
|
||||||
|
public void doAction(final MagicPermanent creature) {
|
||||||
|
game.doAction(new MagicGainAbilityAction(creature,ability));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
public MagicTargetPicker<?> getPicker(final String rule) {
|
||||||
|
final Matcher matcher = matched(rule);
|
||||||
|
final MagicAbility ability = MagicAbility.getAbility(matcher.group("ability"));
|
||||||
|
switch (ability) {
|
||||||
|
case Deathtouch:
|
||||||
|
return MagicDeathtouchTargetPicker.getInstance();
|
||||||
|
default:
|
||||||
|
return MagicPumpTargetPicker.create();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
GainGroup(
|
GainGroup(
|
||||||
"(?<group>[^\\.]*) gain (?<ability>[^\\.]*) until end of turn."
|
"(?<group>[^\\.]*) gain (?<ability>[^\\.]*) until end of turn."
|
||||||
) {
|
) {
|
||||||
|
@ -541,6 +571,10 @@ public enum MagicRuleEventAction {
|
||||||
this(aPattern, MagicTargetHint.None, MagicDefaultTargetPicker.create(), MagicTiming.None, "", MagicEvent.NO_ACTION);
|
this(aPattern, MagicTargetHint.None, MagicDefaultTargetPicker.create(), MagicTiming.None, "", MagicEvent.NO_ACTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MagicRuleEventAction(final String aPattern, final MagicTargetHint aHint) {
|
||||||
|
this(aPattern, aHint, MagicDefaultTargetPicker.create(), MagicTiming.None, "", MagicEvent.NO_ACTION);
|
||||||
|
}
|
||||||
|
|
||||||
private MagicRuleEventAction(
|
private MagicRuleEventAction(
|
||||||
final String aPattern,
|
final String aPattern,
|
||||||
final MagicTiming aTiming,
|
final MagicTiming aTiming,
|
||||||
|
|
Loading…
Reference in New Issue