merge changes from shawnieboyuk-magarena-cards

master
melvin 2013-12-27 14:21:15 +08:00
commit e7fd95e42a
107 changed files with 1250 additions and 292 deletions

View File

@ -0,0 +1,11 @@
name=Abyssal Horror
url=http://magiccards.info/7e/en/115.html
image=http://mtgimage.com/card/abyssal%20horror.jpg
value=2.7
rarity=R
type=Creature
subtype=Horror
cost={4}{B}{B}
pt=2/2
ability=flying;enters effect Target player discards two cards.
timing=main

View File

@ -0,0 +1,23 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE,
MagicShadowTargetPicker.getInstance(),
this,
"Target creature\$ gains haste until end of turn. Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicGainAbilityAction(creature,MagicAbility.Haste));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Accelerate
url=http://magiccards.info/tr/pt/90.html
image=http://mtgimage.com/card/accelerate.jpg
value=1.768
rarity=C
type=Instant
cost={1}{R}
timing=pump
requires_groovy_code

View File

@ -0,0 +1,25 @@
[
new MagicWhenOtherDiesTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) {
return (otherPermanent.isNonToken() &&
otherPermanent.isCreature() &&
otherPermanent.isFriend(permanent)) ?
new MagicEvent(
permanent,
new MagicMayChoice(),
otherPermanent.getCard(),
this,
"PN may\$ sacrifice SN. If you do, return RN to the battlefield."
) :
MagicEvent.NONE;
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new MagicSacrificeAction(event.getPermanent()));
game.doAction(new MagicReanimateAction(event.getRefCard(), event.getPlayer()));
}
}
}
]

View File

@ -0,0 +1,9 @@
name=Angelic Renewal
url=http://magiccards.info/wl/en/120.html
image=http://mtgimage.com/card/angelic%20renewal.jpg
value=4.491
rarity=C
type=Enchantment
cost={1}{W}
timing=enchantment
requires_groovy_code

View File

@ -0,0 +1,25 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_NONBLACK_CREATURE,
MagicDestroyTargetPicker.DestroyNoRegen,
this,
"Destroy target nonblack creature\$. " +
"It can't be regenerated. "+
"Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(MagicChangeStateAction.Set(creature,MagicPermanentState.CannotBeRegenerated));
game.doAction(new MagicDestroyAction(creature));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Annihilate
url=http://magiccards.info/c13/es/68.html
image=http://mtgimage.com/card/annihilate.jpg
value=2.974
rarity=U
type=Instant
cost={3}{B}{B}
timing=removal
requires_groovy_code

View File

@ -0,0 +1,23 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_ENCHANTMENT,
MagicDestroyTargetPicker.Destroy,
this,
"Destroy target enchantment\$. " +
"Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent permanent ->
game.doAction(new MagicDestroyAction(permanent));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Aura Blast
url=http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=26382
image=http://mtgimage.com/card/aura%20blast.jpg
value=3.2
rarity=C
type=Instant
cost={1}{W}
timing=removal
requires_groovy_code

View File

@ -0,0 +1,22 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_CREATURE,
new MagicWeakenTargetPicker(3,0),
this,
"Target creature\$ gets -3/-0 until end of turn. Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicChangeTurnPTAction(creature,-3,-0));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Bewilder
url=http://magiccards.info/ts/en/49.html
image=http://mtgimage.com/card/bewilder.jpg
value=1.297
rarity=C
type=Instant
cost={2}{U}
timing=removal
requires_groovy_code

View File

@ -0,0 +1,24 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_CREATURE,
MagicMustAttackTargetPicker.create(),
this,
"Target creature\$ attacks this turn if able. Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicGainAbilityAction(creature,MagicAbility.AttacksEachTurnIfAble));
game.doAction(new MagicDrawAction(event.getPlayer()));
}
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Boiling Blood
url=http://magiccards.info/wl/en/92.html
image=http://mtgimage.com/card/boiling%20blood.jpg
value=2.357
rarity=C
type=Instant
cost={2}{R}
timing=removal
requires_groovy_code

View File

@ -5,5 +5,5 @@ value=2.462
rarity=U
type=Sorcery
cost={4}{U}
effect=PN draws three cards.
timing=draw
requires_groovy_code

View File

@ -1,22 +1,24 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Animate),
"Shadow"
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [new MagicTapEvent(source)];
return [
new MagicBouncePermanentEvent(source, source)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.TARGET_CREATURE,
MagicShadowTargetPicker.getInstance(),
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Target creature\$ gains shadow until end of turn."
"Regenerate target creature\$."
);
}
@ -24,7 +26,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicGainAbilityAction(creature,MagicAbility.Shadow));
game.doAction(new MagicRegenerateAction(creature));
});
}
}

View File

@ -0,0 +1,9 @@
name=Broken Fall
url=http://magiccards.info/br/en/10.html
image=http://mtgimage.com/card/broken%20fall.jpg
value=3.347
rarity=C
type=Enchantment
cost={2}{G}
timing=enchantment
requires_groovy_code

View File

@ -0,0 +1,11 @@
name=Brutal Nightstalker
url=http://magiccards.info/po2/en/4.html
image=http://mtgimage.com/card/brutal%20nightstalker.jpg
value=1.78
rarity=U
type=Creature
subtype=Nightstalker
cost={3}{B}{B}
pt=3/2
ability=enters effect PN may have Target opponent discards a card.
timing=main

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{3}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ARTIFACT_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target artifact creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Clockwork Gnomes
url=http://magiccards.info/hl/en/127.html
image=http://mtgimage.com/card/clockwork%20gnomes.jpg
value=2.5
rarity=U
type=Artifact,Creature
subtype=Gnome
cost={4}
pt=2/2
timing=artifact
requires_groovy_code

View File

@ -0,0 +1,32 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_CARD_FROM_ALL_GRAVEYARDS,
MagicGraveyardTargetPicker.ExileOpp,
this,
"Exile target card\$ from a graveyard. " +
"Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game, {
final MagicCard card ->
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard
));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.Exile
));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Cremate
url=http://magiccards.info/rtr/en/59.html
image=http://mtgimage.com/card/cremate.jpg
value=3.703
rarity=C
type=Instant
cost={B}
timing=removal
requires_groovy_code

View File

@ -5,5 +5,5 @@ value=4.443
rarity=U
type=Enchantment
cost={2}{B}
ability=pay {B}{B}:Target creature gains shadow until end of turn.
timing=enchantment
requires_groovy_code

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Dauthi,Minion
cost={2}{B}
pt=1/1
ability=pay {T}:Target creature gains shadow until end of turn.
timing=main
requires_groovy_code

View File

@ -1,19 +1,20 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.POS_TARGET_PLAYER,
MagicTargetChoice.POS_TARGET_CREATURE,
this,
"Target player\$ gains 7 life."
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game, {
final MagicPlayer player ->
game.doAction(new MagicChangeLifeAction(player,7));
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}

View File

@ -0,0 +1,9 @@
name=Death Ward
url=http://magiccards.info/5e/en/301.html
image=http://mtgimage.com/card/death%20ward.jpg
value=3.183
rarity=C
type=Instant
cost={W}
timing=pump
requires_groovy_code

View File

@ -5,5 +5,5 @@ value=4.490
rarity=R
type=Enchantment
cost={4}{W/B}{W/B}{W/B}
ability=your upkeep effect return target creature card from a graveyard to the battlefield.
timing=enchantment
requires_groovy_code

View File

@ -1,12 +1,12 @@
[
new MagicWhenComesIntoPlayTrigger() {
new MagicSpellCardEvent() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost payedCost) {
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
permanent,
MagicTargetChoice.TARGET_SPELL,
cardOnStack,
MagicTargetChoice.NEG_TARGET_SPELL,
this,
"Counter target spell\$."
"Counter target spell\$. Draw a card."
);
}
@Override
@ -14,6 +14,7 @@
event.processTargetCardOnStack(game, {
final MagicCardOnStack targetSpell ->
game.doAction(new MagicCounterItemOnStackAction(targetSpell));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}

View File

@ -0,0 +1,9 @@
name=Dismiss
url=http://magiccards.info/c13/it/39.html
image=http://mtgimage.com/card/dismiss.jpg
value=4.361
rarity=U
type=Instant
cost={2}{U}{U}
timing=counter
requires_groovy_code

View File

@ -0,0 +1,22 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_INSTANT_OR_SORCERY_SPELL,
this,
"Counter target instant or sorcery spell\$ unless its controller pays {1}. " +
"Draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCardOnStack(game, {
final MagicCardOnStack targetSpell ->
game.addEvent(new MagicCounterUnlessEvent(event.getSource(),targetSpell,MagicManaCost.create("{1}")));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Disrupt
url=http://magiccards.info/in/es/51.html
image=http://mtgimage.com/card/disrupt.jpg
value=4.314
rarity=U
type=Instant
cost={U}
timing=counter
requires_groovy_code

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Zombie
cost={B}
pt=1/1
ability=pay {1}{U}{R}:SN gets +3/+0 and gains flying until end of turn.
timing=main
requires_groovy_code

View File

@ -1,26 +0,0 @@
[
new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(
final MagicGame game,
final MagicPermanent permanent,
final MagicPlayer upkeepPlayer) {
return permanent.isController(upkeepPlayer) ?
new MagicEvent(
permanent,
new MagicMayChoice(
new MagicPayManaCostChoice(MagicManaCost.create("{1}{U}"))
),
this,
"PN may\$ pay {1}{U}\$. If you don't, sacrifice SN."
) :
MagicEvent.NONE;
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isNo()) {
game.doAction(new MagicSacrificeAction(event.getPermanent()));
}
}
}
]

View File

@ -7,6 +7,5 @@ type=Creature
subtype=Djinn
cost={4}{U}{U}
pt=5/5
ability=flying;cycling {2}
ability=flying;cycling {2};your upkeep effect PN may pay {1}{U}. If you don't, sacrifice SN.
timing=main
requires_groovy_code

View File

@ -0,0 +1,11 @@
name=Ebon Dragon
url=http://magiccards.info/fvd/en/6.html
image=http://mtgimage.com/card/ebon%20dragon.jpg
value=3.15
rarity=R
type=Creature
subtype=Dragon
cost={5}{B}{B}
pt=5/4
ability=flying;enters effect PN may have target opponent discards a card.
timing=main

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicSacrificePermanentEvent(source, MagicTargetChoice.SACRIFICE_CREATURE)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Fanatical Devotion
url=http://magiccards.info/ne/en/8.html
image=http://mtgimage.com/card/fanatical%20devotion.jpg
value=3.227
rarity=C
type=Enchantment
cost={2}{W}
timing=enchantment
requires_groovy_code

View File

@ -0,0 +1,26 @@
[
new MagicWhenOtherDiesTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) {
return (otherPermanent.isNonToken() &&
otherPermanent.isCreature() &&
otherPermanent.isFriend(permanent)) ?
new MagicEvent(
permanent,
new MagicMayChoice(),
this,
"PN may\$ put a 1/1 white Spirit creature token with flying onto the battlefield."
) :
MagicEvent.NONE;
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new MagicPlayTokenAction(
event.getPlayer(),
TokenCardDefinitions.get("1/1 white Spirit creature token with flying")
));
}
}
}
]

View File

@ -0,0 +1,9 @@
name=Field of Souls
url=http://magiccards.info/ddk/en/30.html
image=http://mtgimage.com/card/field%20of%20souls.jpg
value=4.333
rarity=R
type=Enchantment
cost={2}{W}{W}
timing=enchantment
requires_groovy_code

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.NEG_TARGET_CREATURE,
new MagicWeakenTargetPicker(1,1),
new MagicWeakenTargetPicker(1,0),
this,
"Target creature\$ gets -1/-0 until end of turn. Draw a card."
);

View File

@ -1,16 +0,0 @@
[
new MagicWhenComesIntoPlayTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost payedCost) {
return new MagicEvent(
permanent,
this,
"PN draws two cards."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(event.getPlayer(),2));
}
}
]

View File

@ -6,7 +6,7 @@ rarity=C
type=Enchantment
subtype=Aura
cost={3}{U}
ability=enters effect PN draws two cards.
given_ability=flying
timing=aura
enchant=flying,pos creature
requires_groovy_code

View File

@ -0,0 +1,11 @@
name=Goblin Chirurgeon
url=http://magiccards.info/fe/en/110.html
image=http://mtgimage.com/card/goblin%20chirurgeon.jpg
value=3.882
rarity=C
type=Creature
subtype=Goblin,Shaman
cost={R}
pt=0/2
timing=main
requires_groovy_code

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicSacrificePermanentEvent(source, MagicTargetChoice.SACRIFICE_GOBLIN)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicPayManaCostEvent(source, "{3}"), new MagicSacrificeEvent(source)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Herbal Poultice
url=http://magiccards.info/lw/en/257.html
image=http://mtgimage.com/card/herbal%20poultice.jpg
value=2.203
rarity=C
type=Artifact
cost={0}
timing=artifact
requires_groovy_code

View File

@ -6,4 +6,4 @@ rarity=U
type=Instant
cost={G}{W}
timing=draw
requires_groovy_code
effect= Target player gains 7 life.

View File

@ -1,23 +1,21 @@
[
new MagicWhenYouCastSpiritOrArcaneTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack spell) {
return new MagicEvent(
permanent,
new MagicSimpleMayChoice(
MagicSimpleMayChoice.DRAW_CARDS,
1,
MagicSimpleMayChoice.DEFAULT_NONE
),
this,
"PN may\$ draw a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new MagicDrawAction(event.getPlayer()));
}
}
}
]
[
new MagicWhenYouCastSpiritOrArcaneTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack spell) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Horizon Seed
url=http://magiccards.info/chk/en/15.html
image=http://mtgimage.com/card/horizon%20seed.jpg
value=0.965
rarity=U
type=Creature
subtype=Spirit
cost={4}{W}
pt=2/1
timing=main
requires_groovy_code

View File

@ -1,26 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Prevent"
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [new MagicPayManaCostEvent(source,"{W}")];
return [
new MagicPayManaCostEvent(source, "{2}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ARTIFACT_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Prevent the next 1 damage that would be dealt to SN this turn"
"Regenerate target artifact creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPreventDamageAction(event.getPermanent(),1));
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Jhoira's Toolbox
url=http://magiccards.info/ul/en/128.html
image=http://mtgimage.com/card/jhoira's%20toolbox.jpg
value=3.925
rarity=U
type=Artifact,Creature
subtype=Insect
cost={2}
pt=1/1
timing=artifact
requires_groovy_code

View File

@ -1,27 +1,30 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Tapping),
"Untap"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicPayManaCostEvent(source,"{G}"),
new MagicPlayAbilityEvent(source),
new MagicUntapConditionsEvent(source,this)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
this,
"Untap SN."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicUntapAction(event.getPermanent()));
}
}
]
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Main),
"Prevent"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicSacrificeEvent(source)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
this,
"Prevent all combat damage that would be dealt this turn."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicAddTurnTriggerAction(
MagicIfDamageWouldBeDealtTrigger.PreventCombatDamage
));
}
}
]

View File

@ -0,0 +1,11 @@
name=Kami of False Hope
url=http://magiccards.info/bok/en/10.html
image=http://mtgimage.com/card/kami%20of%20false%20hope.jpg
value=4
rarity=C
type=Creature
subtype=Spirit
cost={W}
pt=1/1
timing=main
requires_groovy_code

View File

@ -7,6 +7,5 @@ type=Creature
subtype=Insect
cost={3}{G}
pt=1/1
ability=flying;regenerate {G}
ability=flying;regenerate {G};pay {G}{Once}:Untap SN.
timing=main
requires_groovy_code

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{W}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ARTIFACT,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target artifact\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent artifact ->
game.doAction(new MagicRegenerateAction(artifact));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Loxodon Mender
url=http://magiccards.info/mi/en/12.html
image=http://mtgimage.com/card/loxodon%20mender.jpg
value=1.194
rarity=C
type=Creature
subtype=Cleric,Elephant
cost={5}{W}
pt=3/3
timing=main
requires_groovy_code

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{1}"), new MagicDiscardEvent(source, 1)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Medicine Bag
url=http://magiccards.info/ex/en/133.html
image=http://mtgimage.com/card/medicine%20bag.jpg
value=1.978
rarity=U
type=Artifact
cost={3}
timing=artifact
requires_groovy_code

View File

@ -0,0 +1,9 @@
name=Mending Touch
url=http://magiccards.info/dgm/en/44.html
image=http://mtgimage.com/card/mending%20touch.jpg
value=2.9
rarity=C
type=Instant
cost={G}
timing=pump
requires_groovy_code=Death Ward

View File

@ -0,0 +1,11 @@
name=Metallurgeon
url=http://magiccards.info/arc/en/2.html
image=http://mtgimage.com/card/metallurgeon.jpg
value=3.1
rarity=U
type=Artifact,Creature
subtype=Human,Artificer
cost={1}{W}
pt=1/2
timing=artifact
requires_groovy_code=Loxodon Mender

View File

@ -0,0 +1,38 @@
[
new MagicPermanentActivation(
[MagicCondition.TWO_OR_MORE_WHITE_PERMANENTS],
new MagicActivationHints(MagicTiming.Main),
"Card"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{W}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.TARGET_CARD_FROM_GRAVEYARD,
this,
"Put target card\$ from your graveyard on the bottom of your library."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCard(game, {
final MagicCard targetCard ->
game.doAction(new MagicRemoveCardAction(targetCard,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(
targetCard,
MagicLocationType.Graveyard,
MagicLocationType.BottomOfOwnersLibrary
));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Mistveil Plains
url=http://magiccards.info/shm/en/275.html
image=http://mtgimage.com/card/mistveil%20plains.jpg
value=3.009
rarity=U
type=Land
subtype=Plains
mana=w3
ability=tap add mana {W};enters tapped
timing=land
requires_groovy_code

View File

@ -1,18 +0,0 @@
[
new MagicWhenDiesTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
return new MagicEvent(
permanent,
this,
"PN puts two 2/2 green Ooze creature tokens onto the battlefield. " +
"They have \"When this creature dies, put two 1/1 green Ooze creature tokens onto the battlefield.\""
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokensAction(event.getPlayer(), TokenCardDefinitions.get("2/2 green Ooze creature token"), 2));
}
}
]

View File

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

View File

@ -0,0 +1,9 @@
name=Molting Skin
url=http://magiccards.info/sok/en/138.html
image=http://mtgimage.com/card/molting%20skin.jpg
value=3.129
rarity=U
type=Enchantment
cost={2}{G}
timing=enchantment
requires_groovy_code=Broken Fall

View File

@ -7,6 +7,5 @@ type=Creature
subtype=Snake
cost={1}{G}{U}{U}
pt=2/2
ability=flash
ability=flash;enters effect Counter target spell.
timing=counterflash
requires_groovy_code

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{G}{G}{G}{G}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Niall Silvain
url=http://magiccards.info/dk/en/45.html
image=http://mtgimage.com/card/niall%20silvain.jpg
value=1.218
rarity=R
type=Creature
subtype=Ouphe
cost={G}{G}{G}
pt=2/2
timing=main
requires_groovy_code

View File

@ -0,0 +1,27 @@
[
new MagicWhenComesIntoPlayTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost payedCost) {
return new MagicEvent(
permanent,
MagicColorChoice.ALL_INSTANCE,
this,
"Choose a color\$. " +
"SN has protection from chosen color."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicColor color = event.getChosenColor();
final MagicAbility protection = color.getProtectionAbility();
game.doAction(new MagicAddStaticAction(event.getPermanent(), new MagicStatic(
MagicLayer.Ability) {
@Override
public void modAbilityFlags(final MagicPermanent source,final MagicPermanent permanent,final Set<MagicAbility> flags) {
flags.add(protection);
}
}
));
}
}
]

View File

@ -0,0 +1,12 @@
name=Order of the Stars
url=http://magiccards.info/gp/en/13.html
image=http://mtgimage.com/card/order%20of%20the%20stars.jpg
value=3.727
rarity=U
type=Creature
subtype=Human,Cleric
cost={W}
pt=0/1
ability=defender
timing=main
requires_groovy_code

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Minotaur,Soldier
cost={3}{R}
pt=4/1
ability=pay {W}:Prevent the next 1 damage that would be dealt to SN this turn.
timing=main
requires_groovy_code

View File

@ -1,24 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Pump"
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [new MagicPayManaCostEvent(source,"{1}{U}{R}")];
return [
new MagicSacrificeEvent(source)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ARTIFACT,
MagicRegenerateTargetPicker.getInstance(),
this,
"SN gets +3/+0 and gains flying until end of turn."
"Regenerate target artifact\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicChangeTurnPTAction(event.getPermanent(),3,0));
game.doAction(new MagicGainAbilityAction(event.getPermanent(),MagicAbility.Flying));
event.processTargetPermanent(game, {
final MagicPermanent artifact ->
game.doAction(new MagicRegenerateAction(artifact));
});
}
}
]

View File

@ -0,0 +1,12 @@
name=Pteron Ghost
url=http://magiccards.info/ds/en/10.html
image=http://mtgimage.com/card/pteron%20ghost.jpg
value=2.361
rarity=C
type=Creature
subtype=Spirit
cost={1}{W}
pt=1/1
ability=flying
timing=main
requires_groovy_code

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{G}{W}{U}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Ragnar
url=http://magiccards.info/lg/en/290.html
image=http://mtgimage.com/card/ragnar.jpg
value=3.125
rarity=U
type=Legendary,Creature
subtype=Human,Cleric
cost={G}{W}{U}
pt=2/2
timing=main
requires_groovy_code

View File

@ -1,20 +0,0 @@
[
new MagicWhenComesIntoPlayTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost payedCost) {
return new MagicEvent(
permanent,
permanent.getOpponent(),
this,
"PN discards a card."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.addEvent(new MagicDiscardEvent(
event.getSource(),
event.getPlayer()
));
}
}
]

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Rat
cost={1}{B}
pt=1/1
ability=enters effect Target opponent discards a card.
timing=main
requires_groovy_code

View File

@ -0,0 +1,22 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.POS_TARGET_CREATURE,
this,
"Regenerate target permanent\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
game.doAction(new MagicDrawAction(event.getPlayer()));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Refresh
url=http://magiccards.info/od/pt/264.html
image=http://mtgimage.com/card/refresh.jpg
value=1.889
rarity=C
type=Instant
cost={2}{G}
timing=pump
requires_groovy_code

View File

@ -0,0 +1,9 @@
name=Regenerate
url=http://magiccards.info/m10/en/202.html
image=http://mtgimage.com/card/regenerate.jpg
value=1.206
rarity=C
type=Instant
cost={1}{G}
timing=pump
requires_groovy_code=Death Ward

View File

@ -1,16 +1,21 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.POS_TARGET_P,
this,
"PN draws three cards."
"Regenerate target permanent\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(event.getPlayer(),3));
event.processTargetPermanent(game, {
final MagicPermanent permanent ->
game.doAction(new MagicRegenerateAction(permanent));
});
}
}
]

View File

@ -0,0 +1,9 @@
name=Reknit
url=http://magiccards.info/shm/en/236.html
image=http://mtgimage.com/card/reknit.jpg
value=3.29
rarity=U
type=Instant
cost={1}{G/W}
timing=pump
requires_groovy_code

View File

@ -1,17 +0,0 @@
[
new MagicWhenDiesTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
return new MagicEvent(
permanent,
this,
"PN puts a 3/3 white Bird creature token with flying onto the battlefield."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokenAction(event.getPlayer(),TokenCardDefinitions.get("3/3 white Bird creature token with flying")));
}
}
]

View File

@ -7,6 +7,5 @@ type=Creature
subtype=Bird
cost={2}{W}
pt=0/3
ability=defender
ability=defender;dies effect PN puts a 3/3 white Bird creature token with flying onto the battlefield.
timing=main
requires_groovy_code

View File

@ -0,0 +1,33 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{G}"), new MagicDiscardEvent(source, 1)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Rushwood Herbalist
url=http://magiccards.info/mm/en/265.html
image=http://mtgimage.com/card/rushwood%20herbalist.jpg
value=2.208
rarity=C
type=Creature
subtype=Human,Spellshaper
cost={2}{G}
pt=2/2
timing=main
requires_groovy_code

View File

@ -7,6 +7,5 @@ type=Creature
subtype=Spirit
cost={4}{U}{U}
pt=3/3
ability=flying
ability=flying;spirit or arcane effect PN may draw a card.
timing=main
requires_groovy_code

View File

@ -1,21 +0,0 @@
[
new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
this,
"PN puts five 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield." +
"They have \"Sacrifice this creature: Add {1} to your mana pool.\""
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokensAction(
event.getPlayer(),
TokenCardDefinitions.get("0/1 colorless Eldrazi Spawn creature token"),
5
));
}
}
]

View File

@ -7,4 +7,4 @@ type=Tribal,Sorcery
subtype=Eldrazi
cost={7}
timing=token
requires_groovy_code
effect=PN puts five 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield.

View File

@ -1,22 +1,24 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Animate,true),
"Shadow"
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [new MagicPayManaCostEvent(source,"{B}{B}")];
return [
new MagicPayManaCostEvent(source, "{W/B}{W/B}{W/B}")
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.TARGET_CREATURE,
MagicShadowTargetPicker.getInstance(),
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Target creature\$ gains shadow until end of turn."
"Regenerate target creature\$."
);
}
@ -24,7 +26,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicGainAbilityAction(creature,MagicAbility.Shadow));
game.doAction(new MagicRegenerateAction(creature));
});
}
}

View File

@ -0,0 +1,12 @@
name=Suture Spirit
url=http://magiccards.info/eve/en/16.html
image=http://mtgimage.com/card/suture%20spirit.jpg
value=2.946
rarity=U
type=Creature
subtype=Spirit
cost={1}{W}
pt=1/1
ability=flying
timing=main
requires_groovy_code

View File

@ -0,0 +1,35 @@
[
new MagicPermanentActivation(
new MagicActivationHints(MagicTiming.Pump),
"Regen"
) {
@Override
public Iterable<MagicEvent> getCostEvent(final MagicPermanent source) {
return [
new MagicPayManaCostEvent(source, "{G}"),
new MagicTapEvent(source),
new MagicSacrificePermanentEvent(source, MagicTargetChoice.SACRIFICE_FOREST)
];
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_CREATURE,
MagicRegenerateTargetPicker.getInstance(),
this,
"Regenerate target creature\$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final MagicPermanent creature ->
game.doAction(new MagicRegenerateAction(creature));
});
}
}
]

View File

@ -0,0 +1,11 @@
name=Tel-Jilad Lifebreather
url=http://magiccards.info/5dn/en/96.html
image=http://mtgimage.com/card/tel-jilad%20lifebreather.jpg
value=1.278
rarity=C
type=Creature
subtype=Shaman,Troll
cost={4}{G}
pt=3/2
timing=main
requires_groovy_code

View File

@ -1,22 +0,0 @@
[
new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
return permanent.getEnchantedCreature().isValid() ?
new MagicEvent(
permanent.getEnchantedCreature(),
this,
"PN puts a 1/1 green Saproling creature token onto the battlefield."
):
MagicEvent.NONE;
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokenAction(
event.getPlayer(),
TokenCardDefinitions.get("1/1 green Saproling creature token"),
));
}
}
]

View File

@ -6,7 +6,7 @@ rarity=R
type=Enchantment
subtype=Aura
cost={3}{G}{G}
given_pt=3/3
given_pt=+3/+3
given_ability=each upkeep effect PN puts a 1/1 green Saproling creature token onto the battlefield.
timing=main
enchant=pump,pos creature
requires_groovy_code

View File

@ -1,16 +0,0 @@
[
new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
return new MagicEvent(
permanent,
this,
"PN puts a 1/1 green Saproling creature token onto the battlefield."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicPlayTokenAction(event.getPlayer(),TokenCardDefinitions.get("1/1 green Saproling creature token")));
}
}
]

View File

@ -7,5 +7,5 @@ type=Creature
subtype=Elemental
cost={5}{G}{G}{G}
pt=7/7
ability=each upkeep effect PN puts a 1/1 green Saproling creature token onto the battlefield.
timing=main
requires_groovy_code

View File

@ -0,0 +1,11 @@
name=Village Elder
url=http://magiccards.info/br/en/94.html
image=http://mtgimage.com/card/village%20elder.jpg
value=2.324
rarity=C
type=Creature
subtype=Human,Druid
cost={G}
pt=1/1
timing=main
requires_groovy_code=Tel-Jilad Lifebreather

View File

@ -0,0 +1,12 @@
name=Voice of All
url=http://magiccards.info/cmd/en/35.html
image=http://mtgimage.com/card/voice%20of%20all.jpg
value=4.115
rarity=R
type=Creature
subtype=Angel
cost={2}{W}{W}
pt=2/2
ability=flying
timing=main
requires_groovy_code=Order of the Stars

View File

@ -1,19 +0,0 @@
[
new MagicWhenDiesTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) {
return new MagicEvent(
permanent,
this,
"Return SN to its owner's hand."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicCard card = event.getPermanent().getCard();
game.doAction(new MagicRemoveCardAction(card,MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(card,MagicLocationType.Graveyard,MagicLocationType.OwnersHand));
}
}
]

View File

@ -8,5 +8,4 @@ subtype=Treefolk
cost={2}{G}{G}{G}
pt=5/3
timing=main
ability=trample
requires_groovy_code
ability=trample;dies effect Return SN from the graveyard to its owner's hand.

Some files were not shown because too many files have changed in this diff Show More