New Card Scripts + Groovy
parent
7bb2be2e5c
commit
aff66014d5
|
@ -0,0 +1,20 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
this,
|
||||
"Return all attacking creatures to their owners' hands."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
final Collection<MagicPermanent> targets=
|
||||
game.filterPermanents(event.getPlayer(),MagicTargetFilter.TARGET_ATTACKING_CREATURE);
|
||||
for (final MagicPermanent target : targets) {
|
||||
game.doAction(new MagicRemoveFromPlayAction(target,MagicLocationType.OwnersHand));
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Aetherize
|
||||
url=http://magiccards.info/gtc/en/29.html
|
||||
image=http://mtgimage.com/card/aetherize.jpg
|
||||
value=3.711
|
||||
rarity=U
|
||||
type=Instant
|
||||
cost={3}{U}
|
||||
timing=removal
|
||||
requires_groovy_code
|
|
@ -0,0 +1,23 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicTargetChoice.POS_TARGET_CREATURE,
|
||||
MagicPumpTargetPicker.create(),
|
||||
this,
|
||||
"Target creature\$ gets +1/+1 and gains flying and first strike until end of turn."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
event.processTargetPermanent(game, {
|
||||
final MagicPermanent creature ->
|
||||
game.doAction(new MagicGainAbilityAction(creature, MagicAbility.Flying));
|
||||
game.doAction(new MagicGainAbilityAction(creature, MagicAbility.FirstStrike));
|
||||
game.doAction(new MagicChangeTurnPTAction(creature, 1, 1));
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Aerial Maneuver
|
||||
url=http://magiccards.info/gtc/en/1.html
|
||||
image=http://mtgimage.com/card/aerial%20maneuver.jpg
|
||||
value=2.6
|
||||
rarity=C
|
||||
type=Instant
|
||||
cost={1}{W}
|
||||
timing=pump
|
||||
requires_groovy_code
|
|
@ -0,0 +1,23 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicTargetChoice.NEG_TARGET_CREATURE_WITH_FLYING,
|
||||
MagicDestroyTargetPicker.Destroy,
|
||||
this,
|
||||
"Destroy target creature\$ with flying. " +
|
||||
"PN gains 2 life."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
event.processTargetPermanent(game, {
|
||||
final MagicPermanent creature ->
|
||||
game.doAction(new MagicDestroyAction(creature));
|
||||
game.doAction(new MagicChangeLifeAction(event.getPlayer(),2));
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Aerial Predation
|
||||
url=http://magiccards.info/rtr/en/113.html
|
||||
image=http://mtgimage.com/card/aerial%20predation.jpg
|
||||
value=1.942
|
||||
rarity=C
|
||||
type=Instant
|
||||
cost={2}{G}
|
||||
timing=removal
|
||||
requires_groovy_code
|
|
@ -0,0 +1,24 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicColorChoice.ALL_INSTANCE,
|
||||
this,
|
||||
"Choose a color\$. " +
|
||||
"Creatures PN controls have protection from the chosen color until end of turn."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
final MagicColor color = event.getChosenColor();
|
||||
final MagicAbility protection = color.getProtectionAbility();
|
||||
final Collection<MagicPermanent> targets =
|
||||
game.filterPermanents(event.getPlayer(),MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL);
|
||||
for (final MagicPermanent target : targets) {
|
||||
game.doAction(new MagicGainAbilityAction(target, protection));
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,10 @@
|
|||
name=Akroma's Blessing
|
||||
url=http://magiccards.info/on/en/1.html
|
||||
image=http://mtgimage.com/card/akroma's%20blessing.jpg
|
||||
value=3.766
|
||||
rarity=U
|
||||
type=Instant
|
||||
cost={2}{W}
|
||||
ability=cycling {W}
|
||||
timing=pump
|
||||
requires_groovy_code
|
|
@ -0,0 +1,10 @@
|
|||
name=Altar's Reap
|
||||
url=http://magiccards.info/m14/en/84.html
|
||||
image=http://mtgimage.com/card/altar's%20reap.jpg
|
||||
value=3.675
|
||||
rarity=C
|
||||
type=Instant
|
||||
cost={1}{B}
|
||||
effect=PN draws two cards.
|
||||
timing=draw
|
||||
requires_groovy_code=Bone Splinters
|
|
@ -0,0 +1,20 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
this,
|
||||
"Blocking creatures gain first strike until end of turn."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
final Collection<MagicPermanent> targets=
|
||||
game.filterPermanents(event.getPlayer(),MagicTargetFilter.TARGET_BLOCKING_CREATURE);
|
||||
for (final MagicPermanent target : targets) {
|
||||
game.doAction(new MagicGainAbilityAction(target, MagicAbility.FirstStrike));
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Ambush
|
||||
url=http://magiccards.info/hl/en/78.html
|
||||
image=http://mtgimage.com/card/ambush.jpg
|
||||
value=1.817
|
||||
rarity=C
|
||||
type=Instant
|
||||
cost={3}{R}
|
||||
timing=pump
|
||||
requires_groovy_code
|
|
@ -0,0 +1,34 @@
|
|||
def PT = new MagicStatic(MagicLayer.SetPT, MagicStatic.UntilEOT) {
|
||||
@Override
|
||||
public void modPowerToughness(final MagicPermanent source,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||
pt.set(3,3);
|
||||
}
|
||||
};
|
||||
def ST = new MagicStatic(MagicLayer.Type, MagicStatic.UntilEOT) {
|
||||
@Override
|
||||
public int getTypeFlags(final MagicPermanent permanent,final int flags) {
|
||||
return flags|MagicType.Creature.getMask();
|
||||
}
|
||||
};
|
||||
[
|
||||
new MagicSpellCardEvent() {
|
||||
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicTargetChoice.POS_TARGET_LAND,
|
||||
this,
|
||||
"Target land\$ becomes a 3/3 creature until end of turn."
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
event.processTargetPermanent(game, {
|
||||
final MagicPermanent land ->
|
||||
game.doAction(new MagicBecomesCreatureAction(land,PT,ST));
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Animate Land
|
||||
url=http://magiccards.info/ne/en/101.html
|
||||
image=http://mtgimage.com/card/animate%20land.jpg
|
||||
value=3.961
|
||||
rarity=U
|
||||
type=Instant
|
||||
cost={G}
|
||||
timing=pump
|
||||
requires_groovy_code
|
|
@ -0,0 +1,29 @@
|
|||
def ST = new MagicStatic(MagicLayer.Type, MagicStatic.UntilEOT) {
|
||||
@Override
|
||||
public int getTypeFlags(final MagicPermanent permanent,final int flags) {
|
||||
return flags|MagicType.Artifact.getMask();
|
||||
}
|
||||
};
|
||||
|
||||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack, final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicTargetChoice.TARGET_PERMANENT,
|
||||
this,
|
||||
"Target permanent\$ becomes an artifact in addition to its other types until end of turn. " +
|
||||
"PN draws a card."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
event.processTargetPermanent(game, {
|
||||
final MagicPermanent land ->
|
||||
game.doAction(new MagicAddStaticAction(land, ST));
|
||||
game.doAction(new MagicDrawAction(event.getPlayer()));
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Argent Mutation
|
||||
url=http://magiccards.info/nph/en/27.html
|
||||
image=http://mtgimage.com/card/argent%20mutation.jpg
|
||||
value=1.766
|
||||
rarity=U
|
||||
type=Instant
|
||||
cost={2}{U}
|
||||
timing=pump
|
||||
requires_groovy_code
|
|
@ -0,0 +1,28 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicTargetChoice.NEG_TARGET_ATTACKING_CREATURE,
|
||||
this,
|
||||
"SN deals damage to target attacking creature\$ equal to the" +
|
||||
"number of Equipment PN controls."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
final MagicPlayer player = event.getPlayer();
|
||||
final int amount = player.getNrOfPermanents(MagicSubType.Equipment);
|
||||
event.processTargetPermanent(game, {
|
||||
final MagicPermanent creature ->
|
||||
final MagicDamage damage = new MagicDamage(
|
||||
event.getSource(),
|
||||
creature,
|
||||
amount
|
||||
);
|
||||
game.doAction(new MagicDealDamageAction(damage));
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
name=Armed Response
|
||||
url=http://magiccards.info/5dn/en/2.html
|
||||
image=http://mtgimage.com/card/armed%20response.jpg
|
||||
value=1.597
|
||||
rarity=C
|
||||
type=Instant
|
||||
cost={2}{W}
|
||||
timing=removal
|
||||
requires_groovy_code
|
|
@ -0,0 +1,25 @@
|
|||
[
|
||||
new MagicSpellCardEvent() {
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
cardOnStack,
|
||||
MagicTargetChoice.TARGET_ENCHANTMENT,
|
||||
MagicBounceTargetPicker.create(),
|
||||
this,
|
||||
"Put target enchantment\$ on top of its owner's library."
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game, final MagicEvent event) {
|
||||
event.processTargetPermanent(game, {
|
||||
final MagicPermanent enchantment ->
|
||||
game.doAction(new MagicRemoveFromPlayAction(
|
||||
enchantment,
|
||||
MagicLocationType.TopOfOwnersLibrary
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
|
@ -0,0 +1,10 @@
|
|||
name=Aura Extraction
|
||||
url=http://magiccards.info/on/en/5.html
|
||||
image=http://mtgimage.com/card/aura%20extraction.jpg
|
||||
value=2.312
|
||||
rarity=U
|
||||
type=Instant
|
||||
cost={1}{W}
|
||||
ability=cycling {2}
|
||||
timing=removal
|
||||
requires_groovy_code
|
Loading…
Reference in New Issue