add parser for weaken effect
parent
d7c1446355
commit
ffe2a220e6
|
@ -104,7 +104,7 @@ public abstract class MagicPermanentActivation extends MagicActivation<MagicPerm
|
|||
final String effect = text.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicPermanentActivation(
|
||||
|
|
|
@ -24,6 +24,7 @@ import magic.model.target.MagicDestroyTargetPicker;
|
|||
import magic.model.target.MagicExileTargetPicker;
|
||||
import magic.model.target.MagicDamageTargetPicker;
|
||||
import magic.model.target.MagicPumpTargetPicker;
|
||||
import magic.model.target.MagicWeakenTargetPicker;
|
||||
import magic.model.choice.MagicTargetChoice;
|
||||
import magic.model.choice.MagicChoice;
|
||||
|
||||
|
@ -161,13 +162,32 @@ public enum MagicRuleEventAction {
|
|||
};
|
||||
}
|
||||
},
|
||||
Weaken(
|
||||
"(?<choice>[^\\.]*) gets (?<pt>[0-9-]+/[0-9-]+) until end of turn.",
|
||||
MagicTargetHint.Negative,
|
||||
null,
|
||||
MagicTiming.Removal,
|
||||
"Weaken",
|
||||
null
|
||||
) {
|
||||
public MagicEventAction getAction(final String rule) {
|
||||
return Pump.getAction(rule);
|
||||
}
|
||||
public MagicTargetPicker<?> getPicker(final String rule) {
|
||||
final Matcher matcher = matched(rule);
|
||||
final String[] args = matcher.group("pt").replace('+','0').split("/");
|
||||
final int p = -Integer.parseInt(args[0]);
|
||||
final int t = -Integer.parseInt(args[1]);
|
||||
return new MagicWeakenTargetPicker(p, t);
|
||||
}
|
||||
},
|
||||
;
|
||||
|
||||
private final Pattern pattern;
|
||||
private final MagicTargetHint hint;
|
||||
private final MagicEventAction action;
|
||||
private final MagicTargetPicker<?> picker;
|
||||
|
||||
public final MagicTargetPicker<?> picker;
|
||||
public final MagicTiming timing;
|
||||
public final String description;
|
||||
|
||||
|
@ -194,6 +214,10 @@ public enum MagicRuleEventAction {
|
|||
return pattern.matcher(rule).matches();
|
||||
}
|
||||
|
||||
public MagicTargetPicker<?> getPicker(final String rule) {
|
||||
return picker;
|
||||
}
|
||||
|
||||
public MagicEventAction getAction(final String rule) {
|
||||
return action;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public abstract class MagicSpellCardEvent implements MagicCardEvent,MagicEventAc
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicSpellCardEvent() {
|
||||
|
|
|
@ -17,7 +17,7 @@ public class MagicWeakenTargetPicker extends MagicTargetPicker<MagicPermanent> {
|
|||
public MagicWeakenTargetPicker(final int amountPower,final int amountToughness) {
|
||||
this.amountToughness=amountToughness;
|
||||
}
|
||||
|
||||
|
||||
public MagicWeakenTargetPicker create(final String arg) {
|
||||
final String[] args = arg.replace('+','0').split("/");
|
||||
final int p = -Integer.parseInt(args[0]);
|
||||
|
|
|
@ -38,7 +38,7 @@ public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger<MagicPa
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicWhenComesIntoPlayTrigger() {
|
||||
|
@ -65,7 +65,7 @@ public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger<MagicPa
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicWhenComesIntoPlayTrigger() {
|
||||
|
|
|
@ -32,7 +32,7 @@ public abstract class MagicWhenDiesTrigger extends MagicWhenPutIntoGraveyardTrig
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicWhenDiesTrigger() {
|
||||
|
@ -59,7 +59,7 @@ public abstract class MagicWhenDiesTrigger extends MagicWhenPutIntoGraveyardTrig
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicWhenDiesTrigger() {
|
||||
|
|
|
@ -37,7 +37,7 @@ public abstract class MagicWhenLeavesPlayTrigger extends MagicTrigger<MagicRemov
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicWhenLeavesPlayTrigger() {
|
||||
|
@ -64,7 +64,7 @@ public abstract class MagicWhenLeavesPlayTrigger extends MagicTrigger<MagicRemov
|
|||
final String effect = rule.toLowerCase();
|
||||
final MagicRuleEventAction ruleAction = MagicRuleEventAction.build(effect);
|
||||
final MagicEventAction action = ruleAction.getAction(effect);
|
||||
final MagicTargetPicker<?> picker = ruleAction.picker;
|
||||
final MagicTargetPicker<?> picker = ruleAction.getPicker(effect);
|
||||
final MagicChoice choice = ruleAction.getChoice(effect);
|
||||
|
||||
return new MagicWhenLeavesPlayTrigger() {
|
||||
|
|
Loading…
Reference in New Issue