replace groovy code with ability in card script

master
melvin 2013-10-17 21:01:21 +08:00
parent c417879b2b
commit c926e31e23
10 changed files with 12 additions and 92 deletions

View File

@ -1,4 +1,4 @@
name=Insect4
name=1/1 green Insect creature token
token=Insect
image=http://magiccards.info/extras/token/magic-2010/insect.jpg
value=2

View File

@ -1,23 +0,0 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Flash),
"Token"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [new MagicPayManaCostEvent(source,"{1}{G}")];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
this,
"Put a 1/1 green Insect creature token onto the battlefield."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokenAction(event.getPlayer(), TokenCardDefinitions.get("Insect4")));
}
}
]

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Insect
cost={3}{G}{G}
pt=5/5
ability=pay {1}{G}: PN puts a 1/1 green Insect creature token onto the battlefield.
timing=main
requires_groovy_code

View File

@ -1,20 +0,0 @@
[
new MagicWhenDiesTrigger() {
@Override
public MagicEvent getEvent(final MagicPermanent permanent) {
return new MagicEvent(
permanent,
this,
"PN puts four 1/1 green Insect creature tokens onto the battlefield."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokensAction(
event.getPlayer(),
TokenCardDefinitions.get("Insect4"),
4
));
}
}
]

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Insect,Beast
cost={4}{G}{G}
pt=4/4
ability=dies effect PN puts four 1/1 green Insect creature tokens onto the battlefield.
timing=main
requires_groovy_code

View File

@ -1,20 +0,0 @@
[
new MagicWhenDiesTrigger() {
@Override
public MagicEvent getEvent(final MagicPermanent permanent) {
return new MagicEvent(
permanent,
this,
"PN puts two 1/1 green Insect creature tokens onto the battlefield."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokensAction(
event.getPlayer(),
TokenCardDefinitions.get("Insect4"),
2
));
}
}
]

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Elf
cost={3}{G}
pt=2/2
ability=dies effect PN puts two 1/1 green Insect creature tokens onto the battlefield.
timing=main
requires_groovy_code

View File

@ -1,20 +0,0 @@
[
new MagicWhenDiesTrigger() {
@Override
public MagicEvent getEvent(final MagicPermanent permanent) {
return new MagicEvent(
permanent,
this,
"PN puts seven 1/1 green Insect creature tokens onto the battlefield."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokensAction(
event.getPlayer(),
TokenCardDefinitions.get("Insect4"),
7
));
}
}
]

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Wurm
cost={5}{G}{G}{G}
pt=7/7
ability=dies effect PN puts seven 1/1 green Insect creature tokens onto the battlefield.
timing=main
requires_groovy_code

View File

@ -20,7 +20,7 @@ import magic.model.action.MagicChangeLifeAction;
import magic.model.action.MagicTapAction;
import magic.model.action.MagicUntapAction;
import magic.model.action.MagicChangeCountersAction;
import magic.model.action.MagicPlayTokenAction;
import magic.model.action.MagicPlayTokensAction;
import magic.model.stack.MagicCardOnStack;
import magic.model.target.MagicTarget;
import magic.model.target.MagicTargetHint;
@ -321,18 +321,20 @@ public enum MagicRuleEventAction {
}
),
Token(
"pn puts a(n)? (?<name>[^\\.]*) onto the battlefield.",
"pn puts (?<amount>[a-z]+) (?<name>[^\\.]*) onto the battlefield.",
MagicTiming.Token,
"Token"
) {
public MagicEventAction getAction(final String rule) {
final Matcher matcher = matched(rule);
final int amount = englishToInt(matcher.group("amount"));
return new MagicEventAction() {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokenAction(
game.doAction(new MagicPlayTokensAction(
event.getPlayer(),
TokenCardDefinitions.get(matcher.group("name"))
TokenCardDefinitions.get(matcher.group("name")),
amount
));
}
};
@ -447,6 +449,7 @@ public enum MagicRuleEventAction {
public static int englishToInt(String num) {
switch (num) {
case "a": return 1;
case "an": return 1;
case "two": return 2;
case "three" : return 3;
case "four" : return 4;