added Seance and Sudden Disappearance
parent
9aa6678acc
commit
2690760b72
|
@ -0,0 +1,11 @@
|
|||
>Seance
|
||||
url=http://magiccards.info/dka/en/20.html
|
||||
image=http://magiccards.info/scans/en/dka/20.jpg
|
||||
value=3
|
||||
rarity=R
|
||||
type=Enchantment
|
||||
color=w
|
||||
converted=4
|
||||
cost={2}{W}{W}
|
||||
timing=enchantment
|
||||
requires_card_code
|
|
@ -0,0 +1,11 @@
|
|||
>Sudden Disappearance
|
||||
url=http://magiccards.info/dka/en/23.html
|
||||
image=http://magiccards.info/scans/en/dka/23.jpg
|
||||
value=4
|
||||
rarity=R
|
||||
type=Sorcery
|
||||
color=w
|
||||
converted=6
|
||||
cost={5}{W}
|
||||
timing=removal
|
||||
requires_card_code
|
|
@ -0,0 +1,92 @@
|
|||
package magic.card;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import magic.model.MagicCard;
|
||||
import magic.model.MagicGame;
|
||||
import magic.model.MagicLocationType;
|
||||
import magic.model.MagicPermanent;
|
||||
import magic.model.MagicPermanentState;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.MagicSubType;
|
||||
import magic.model.action.MagicAction;
|
||||
import magic.model.action.MagicAddStaticAction;
|
||||
import magic.model.action.MagicCardAction;
|
||||
import magic.model.action.MagicChangeStateAction;
|
||||
import magic.model.action.MagicMoveCardAction;
|
||||
import magic.model.action.MagicPlayTokenAction;
|
||||
import magic.model.action.MagicPutIntoPlayAction;
|
||||
import magic.model.action.MagicRemoveCardAction;
|
||||
import magic.model.choice.MagicMayChoice;
|
||||
import magic.model.choice.MagicTargetChoice;
|
||||
import magic.model.event.MagicEvent;
|
||||
import magic.model.mstatic.MagicLayer;
|
||||
import magic.model.mstatic.MagicStatic;
|
||||
import magic.model.target.MagicGraveyardTargetPicker;
|
||||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||
|
||||
public class Seance {
|
||||
private static final MagicStatic Spirit = new MagicStatic(MagicLayer.Type) {
|
||||
@Override
|
||||
public EnumSet<MagicSubType> getSubTypeFlags(final MagicPermanent permanent,final EnumSet<MagicSubType> flags) {
|
||||
final EnumSet<MagicSubType> mod = flags.clone();
|
||||
mod.add(MagicSubType.Spirit);
|
||||
return mod;
|
||||
}
|
||||
};
|
||||
|
||||
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
||||
@Override
|
||||
public MagicEvent executeTrigger(
|
||||
final MagicGame game,
|
||||
final MagicPermanent permanent,
|
||||
final MagicPlayer data) {
|
||||
final MagicPlayer player = permanent.getController();
|
||||
return new MagicEvent(
|
||||
permanent,
|
||||
player,
|
||||
new MagicMayChoice(
|
||||
player + " may exile target creature card from your graveyard.",
|
||||
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD),
|
||||
new MagicGraveyardTargetPicker(true),
|
||||
new Object[]{player},
|
||||
this,
|
||||
player + " may$ exile target creature card$ from his or her graveyard. " +
|
||||
"If he or she does, put a token onto the battlefield that's a copy " +
|
||||
"of that card except it's a Spirit in addition to its other types. " +
|
||||
"Exile it at the beginning of the next end step.");
|
||||
}
|
||||
|
||||
@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) {
|
||||
final MagicPlayer player=(MagicPlayer)data[0];
|
||||
game.doAction(new MagicRemoveCardAction(
|
||||
card,
|
||||
MagicLocationType.Graveyard));
|
||||
game.doAction(new MagicMoveCardAction(
|
||||
card,
|
||||
MagicLocationType.Graveyard,
|
||||
MagicLocationType.Exile));
|
||||
final MagicAction action = new MagicPlayTokenAction(
|
||||
player,
|
||||
card.getCardDefinition());
|
||||
game.doAction(action);
|
||||
final MagicPermanent permanent = ((MagicPutIntoPlayAction)action).getPermanent();
|
||||
game.doAction(new MagicChangeStateAction(
|
||||
permanent,
|
||||
MagicPermanentState.SacrificeAtEndOfTurn,
|
||||
true));
|
||||
game.doAction(new MagicAddStaticAction(permanent,Spirit));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package magic.card;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import magic.model.MagicGame;
|
||||
import magic.model.MagicPayedCost;
|
||||
import magic.model.MagicPermanent;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.action.MagicExileUntilEndOfTurnAction;
|
||||
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;
|
||||
import magic.model.target.MagicTarget;
|
||||
import magic.model.target.MagicTargetFilter;
|
||||
|
||||
public class Sudden_Disappearance {
|
||||
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.TARGET_PLAYER,
|
||||
new Object[]{cardOnStack},
|
||||
this,
|
||||
"Exile all nonland permanents target player$ controls.");
|
||||
}
|
||||
@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) {
|
||||
final Collection<MagicTarget> targets =
|
||||
game.filterTargets(player,MagicTargetFilter.TARGET_PERMANENT_YOU_CONTROL);
|
||||
for (final MagicTarget target : targets) {
|
||||
final MagicPermanent permanent = (MagicPermanent)target;
|
||||
if (!permanent.isLand()) {
|
||||
game.doAction(new MagicExileUntilEndOfTurnAction(permanent));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue