added Stun and Sudden Impact

master
beholder 2011-09-22 18:54:11 +02:00
parent f8a61cf7ba
commit 34e553a718
3 changed files with 109 additions and 0 deletions

View File

@ -4194,6 +4194,16 @@ converted=1
cost={R}
timing=removal
>Sudden Impact
image=http://magiccards.info/scans/en/10e/241.jpg
value=2
rarity=U
type=Instant
color=r
converted=4
cost={3}{R}
timing=main
>Volcanic Hammer
image=http://magiccards.info/scans/en/9e/226.jpg
value=3
@ -7690,6 +7700,16 @@ converted=3
cost={2}{U}
timing=tapping
>Stun
image=http://magiccards.info/scans/en/10e/240.jpg
value=1
rarity=C
type=Instant
color=r
converted=2
cost={1}{R}
timing=block
>Demystify
image=http://magiccards.info/scans/en/m12/13.jpg
value=2

40
src/magic/card/Stun.java Normal file
View File

@ -0,0 +1,40 @@
package magic.card;
import magic.model.MagicAbility;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicDrawAction;
import magic.model.action.MagicPermanentAction;
import magic.model.action.MagicSetAbilityAction;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.event.MagicSpellCardEvent;
import magic.model.stack.MagicCardOnStack;
import magic.model.target.MagicNoCombatTargetPicker;
public class Stun {
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,
new MagicNoCombatTargetPicker(false,true,false),
new Object[]{cardOnStack.getController()},
this,
"Target creature$ can't block this turn.");
}
@Override
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
event.processTargetPermanent(game,choiceResults,0,new MagicPermanentAction() {
public void doAction(final MagicPermanent creature) {
game.doAction(new MagicSetAbilityAction(creature,MagicAbility.CannotBlock));
game.doAction(new MagicDrawAction((MagicPlayer)data[0],1));
}
});
}
};
}

View File

@ -0,0 +1,49 @@
package magic.card;
import magic.model.MagicDamage;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.MagicPlayer;
import magic.model.action.MagicDealDamageAction;
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 Sudden_Impact {
public static final MagicSpellCardEvent S = new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
final MagicPlayer player = cardOnStack.getController();
return new MagicEvent(
cardOnStack.getCard(),
player,
MagicTargetChoice.NEG_TARGET_PLAYER,
new Object[]{cardOnStack,player},
this,
cardOnStack.getCard() + " deals damage equal to the " +
"number of cards in target player's hand to that 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.processTargetPlayer(game,choiceResults,0,new MagicPlayerAction() {
public void doAction(final MagicPlayer player) {
final MagicDamage damage = new MagicDamage(
cardOnStack.getCard(),
player,
player.getHandSize(),
false);
game.doAction(new MagicDealDamageAction(damage));
}
});
}
};
}