added MagicSoulshiftTrigger. added Body of Jukai

master
beholder 2011-10-30 10:18:27 +01:00
parent 7181328133
commit 1f8b9c8889
3 changed files with 104 additions and 0 deletions

View File

@ -17801,3 +17801,17 @@ converted=4
cost={3}{B}
pt=3/3
timing=main
>Body of Jukai
url=http://magiccards.info/bok/en/121.html
image=http://magiccards.info/scans/en/bok/121.jpg
value=5
rarity=U
type=Creature
subtype=Spirit
color=g
converted=9
cost={7}{G}{G}
pt=8/5
ability=trample
timing=main

View File

@ -0,0 +1,7 @@
package magic.card;
import magic.model.trigger.MagicSoulshiftTrigger;
public class Body_of_Jukai {
public static final MagicSoulshiftTrigger T = new MagicSoulshiftTrigger(8);
}

View File

@ -0,0 +1,83 @@
package magic.model.trigger;
import magic.model.MagicCard;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicCardAction;
import magic.model.action.MagicMoveCardAction;
import magic.model.action.MagicRemoveCardAction;
import magic.model.choice.MagicChoice;
import magic.model.choice.MagicMayChoice;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.target.MagicGraveyardTargetPicker;
import magic.model.target.MagicTargetFilter;
import magic.model.target.MagicTargetHint;
public class MagicSoulshiftTrigger extends MagicWhenPutIntoGraveyardTrigger {
private final int cmc;
public MagicSoulshiftTrigger(final int cmc) {
this.cmc = cmc;
}
@Override
public MagicEvent executeTrigger(
final MagicGame game,
final MagicPermanent permanent,
final MagicGraveyardTriggerData triggerData) {
if (MagicLocationType.Play == triggerData.fromLocation) {
final MagicPlayer player = permanent.getController();
final MagicTargetFilter targetFilter =
new MagicTargetFilter.MagicCMCTargetFilter(
MagicTargetFilter.TARGET_SPIRIT_CARD_FROM_GRAVEYARD,
2, // less than or equal
cmc);
final MagicTargetChoice targetChoice =
new MagicTargetChoice(
targetFilter,false,MagicTargetHint.None,
"a Spirit card from your graveyard)");
final MagicChoice mayChoice =
new MagicMayChoice(
player + " may return target Spirit card with " +
"converted mana cost " + cmc + " or less " +
"from his or her graveyard to his or her hand.",
targetChoice);
return new MagicEvent(
permanent,
player,
mayChoice,
new MagicGraveyardTargetPicker(false),
MagicEvent.NO_DATA,
this,
player + " may$ return target Spirit card$ with " +
"converted mana cost " + cmc + " or less " +
"from his or her graveyard to his or her hand.");
}
return MagicEvent.NONE;
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
if (MagicMayChoice.isYesChoice(choiceResults[0])) {
event.processTargetCard(game,choiceResults,1,new MagicCardAction() {
public void doAction(final MagicCard card) {
game.doAction(new MagicRemoveCardAction(
card,
MagicLocationType.Graveyard));
game.doAction(new MagicMoveCardAction(
card,
MagicLocationType.Graveyard,
MagicLocationType.OwnersHand));
}
});
}
}
}