convert from java code to groovy code

master
melvin 2013-05-31 10:58:05 +08:00
parent a9582a837b
commit d95bdb401d
3 changed files with 63 additions and 85 deletions

View File

@ -0,0 +1,62 @@
[
new MagicLandfallTrigger() {
@Override
public MagicEvent getEvent(final MagicPermanent permanent) {
return new MagicEvent(
permanent,
new MagicSimpleMayChoice(
MagicSimpleMayChoice.UNTAP,
1,
MagicSimpleMayChoice.DEFAULT_YES
),
this,
"PN may\$ untap SN."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new MagicUntapAction(event.getPermanent()));
}
}
},
new MagicPermanentActivation(
[MagicCondition.CAN_TAP_CONDITION],
new MagicActivationHints(MagicTiming.MustAttack),
"Attacks"
) {
@Override
public MagicEvent[] getCostEvent(final MagicPermanent source) {
return [new MagicTapEvent(source)];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.NEG_TARGET_PLAYER,
this,
"Exile the top card of target player's$ library. " +
"If it's a land card, PN gains 1 life."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game,new MagicPlayerAction() {
public void doAction(final MagicPlayer player) {
final MagicCard card = player.getLibrary().getCardAtTop();
if (card != MagicCard.NONE) {
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.Exile));
if (card.getCardDefinition().isLand()) {
game.doAction(new MagicChangeLifeAction(event.getPlayer(),1));
}
}
}
});
}
}
]

View File

@ -8,4 +8,4 @@ subtype=Rat
cost={2}{B}
pt=1/1
timing=main
requires_card_code
requires_groovy_code

View File

@ -1,84 +0,0 @@
package magic.card;
import magic.model.MagicCard;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicPayedCost;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicChangeLifeAction;
import magic.model.action.MagicMoveCardAction;
import magic.model.action.MagicPlayerAction;
import magic.model.action.MagicRemoveCardAction;
import magic.model.action.MagicUntapAction;
import magic.model.choice.MagicSimpleMayChoice;
import magic.model.choice.MagicTargetChoice;
import magic.model.condition.MagicCondition;
import magic.model.event.MagicActivationHints;
import magic.model.event.MagicEvent;
import magic.model.event.MagicPermanentActivation;
import magic.model.event.MagicTapEvent;
import magic.model.event.MagicTiming;
import magic.model.trigger.MagicLandfallTrigger;
public class Scrib_Nibblers {
public static final MagicLandfallTrigger T = new MagicLandfallTrigger() {
@Override
public MagicEvent getEvent(final MagicPermanent permanent) {
return new MagicEvent(
permanent,
new MagicSimpleMayChoice(
MagicSimpleMayChoice.UNTAP,
1,
MagicSimpleMayChoice.DEFAULT_YES),
this,
"PN may$ untap SN.");
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event) {
if (event.isYes()) {
game.doAction(new MagicUntapAction(event.getPermanent()));
}
}
};
public static final MagicPermanentActivation A = new MagicPermanentActivation(
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
new MagicActivationHints(MagicTiming.MustAttack),
"Attacks") {
@Override
public MagicEvent[] getCostEvent(final MagicPermanent source) {
return new MagicEvent[]{new MagicTapEvent(source)};
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.NEG_TARGET_PLAYER,
this,
"Exile the top card of target player's$ library. " +
"If it's a land card, PN gains 1 life.");
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game,new MagicPlayerAction() {
public void doAction(final MagicPlayer player) {
final MagicCard card = player.getLibrary().getCardAtTop();
if (card != MagicCard.NONE) {
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.OwnersLibrary));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.OwnersLibrary,MagicLocationType.Exile));
if (card.getCardDefinition().isLand()) {
game.doAction(new MagicChangeLifeAction(event.getPlayer(),1));
}
}
}
});
}
};
}