added Brain Freeze and Grapeshot

master
beholder 2012-05-05 15:47:38 +02:00
parent 9790de7d7f
commit dab5bb9e1b
4 changed files with 119 additions and 0 deletions

View File

@ -0,0 +1,12 @@
>Brain Freeze
url=http://magiccards.info/sc/en/29.html
image=http://magiccards.info/scans/en/sc/29.jpg
value=3
rarity=U
type=Instant
color=u
converted=2
cost={1}{U}
timing=storm
ability=storm
requires_card_code

View File

@ -0,0 +1,13 @@
>Grapeshot
url=http://magiccards.info/ts/en/160.html
image=http://magiccards.info/scans/en/ts/160.jpg
value=1
removal=1
rarity=C
type=Sorcery
color=r
converted=2
cost={1}{R}
timing=storm
ability=storm
requires_card_code

View File

@ -0,0 +1,43 @@
package magic.card;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.MagicPlayer;
import magic.model.action.MagicMillLibraryAction;
import magic.model.action.MagicMoveCardAction;
import magic.model.action.MagicPlayerAction;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.event.MagicSpellCardEvent;
import magic.model.stack.MagicCardOnStack;
public class Brain_Freeze {
public static final MagicSpellCardEvent E = new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(
final MagicCardOnStack cardOnStack,
final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack.getCard(),
cardOnStack.getController(),
MagicTargetChoice.TARGET_PLAYER,
new Object[]{cardOnStack},
this,
"Target player$ puts the top three cards of his or her " +
"library into his or her graveyard.");
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object[] data,
final Object[] choiceResults) {
game.doAction(new MagicMoveCardAction((MagicCardOnStack)data[0]));
event.processTargetPlayer(game,choiceResults,0,new MagicPlayerAction() {
public void doAction(final MagicPlayer player) {
game.doAction(new MagicMillLibraryAction(player,3));
}
});
}
};
}

View File

@ -0,0 +1,51 @@
package magic.card;
import magic.model.MagicDamage;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.action.MagicDealDamageAction;
import magic.model.action.MagicMoveCardAction;
import magic.model.action.MagicTargetAction;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.event.MagicSpellCardEvent;
import magic.model.stack.MagicCardOnStack;
import magic.model.target.MagicDamageTargetPicker;
import magic.model.target.MagicTarget;
public class Grapeshot {
public static final MagicSpellCardEvent S = new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(
final MagicCardOnStack cardOnStack,
final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack.getCard(),
cardOnStack.getController(),
MagicTargetChoice.NEG_TARGET_CREATURE_OR_PLAYER,
new MagicDamageTargetPicker(1),
new Object[]{cardOnStack},
this,
cardOnStack.getCard() + " deals 1 damage to target creature or player$.");
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object[] data,
final Object[] choiceResults) {
final MagicCardOnStack cardOnStack = (MagicCardOnStack)data[0];
game.doAction(new MagicMoveCardAction(cardOnStack));
event.processTarget(game,choiceResults,0,new MagicTargetAction() {
public void doAction(final MagicTarget target) {
final MagicDamage damage = new MagicDamage(
cardOnStack.getCard(),
target,
1,
false);
game.doAction(new MagicDealDamageAction(damage));
}
});
}
};
}