added Essence Drain and Festering Goblin

master
beholder 2011-09-21 09:32:15 +02:00
parent 825b887e6f
commit 779d2da02b
3 changed files with 114 additions and 0 deletions

View File

@ -1,3 +1,15 @@
>Festering Goblin
image=http://magiccards.info/scans/en/10e/143.jpg
value=1
rarity=C
type=Creature
subtype=Zombie,Goblin
color=b
converted=1
cost={B}
pt=1/1
timing=main
>Elvish Champion
image=http://magiccards.info/scans/en/10e/261.jpg
value=3
@ -3704,6 +3716,17 @@ converted=2
cost={R}{W}
timing=removal
>Essence Drain
image=http://magiccards.info/scans/en/10e/141.jpg
value=4
removal=3
rarity=C
type=Sorcery
color=b
converted=5
cost={4}{B}
timing=removal
>Might of Oaks
image=http://magiccards.info/scans/en/m10/192.jpg
value=4

View File

@ -0,0 +1,52 @@
package magic.card;
import magic.model.MagicCard;
import magic.model.MagicDamage;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.MagicPlayer;
import magic.model.action.MagicChangeLifeAction;
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 Essence_Drain {
public static final MagicSpellCardEvent S = new MagicSpellCardEvent() {
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
final MagicPlayer player=cardOnStack.getController();
final MagicCard card = cardOnStack.getCard();
return new MagicEvent(
cardOnStack.getCard(),
player,
MagicTargetChoice.TARGET_CREATURE_OR_PLAYER,
new MagicDamageTargetPicker(3),
new Object[]{cardOnStack,player},
this,
card + " deals 3 damage to target creature or player$ and " +
player + " gains 3 life.");
}
@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,3,false);
game.doAction(new MagicDealDamageAction(damage));
}
});
game.doAction(new MagicChangeLifeAction((MagicPlayer)data[1],3));
}
};
}

View File

@ -0,0 +1,39 @@
package magic.card;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicPermanent;
import magic.model.action.MagicChangeTurnPTAction;
import magic.model.action.MagicPermanentAction;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.target.MagicWeakenTargetPicker;
import magic.model.trigger.MagicGraveyardTriggerData;
import magic.model.trigger.MagicWhenPutIntoGraveyardTrigger;
public class Festering_Goblin {
public static final MagicWhenPutIntoGraveyardTrigger T = new MagicWhenPutIntoGraveyardTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicGraveyardTriggerData triggerData) {
return (MagicLocationType.Play == triggerData.fromLocation) ?
new MagicEvent(
permanent,
permanent.getController(),
MagicTargetChoice.TARGET_CREATURE,
new MagicWeakenTargetPicker(-1,-1),
new Object[]{permanent},
this,
"Target creature$ gets -1/-1 until end of turn.") :
MagicEvent.NONE;
}
@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 MagicChangeTurnPTAction(creature,-1,-1));
}
});
}
};
}