added Call to the Grave

master
beholder 2011-08-24 20:55:04 +02:00
parent fbd3b35a6e
commit bb9ed7a9d0
4 changed files with 90 additions and 0 deletions

View File

@ -3959,6 +3959,16 @@ cost={1}{W}{W}
static=player
timing=enchantment
>Call to the Grave
image=http://magiccards.info/scans/en/m12/85.jpg
value=4
rarity=R
type=Enchantment
color=b
converted=5
cost={4}{B}
timing=enchantment
>Glory of Warfare
image=http://magiccards.info/scans/en/arb/98.jpg
value=4

View File

@ -0,0 +1,63 @@
package magic.card;
import java.util.Collection;
import magic.model.*;
import magic.model.action.MagicSacrificeAction;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.event.MagicSacrificePermanentEvent;
import magic.model.target.MagicTarget;
import magic.model.target.MagicTargetFilter;
import magic.model.trigger.MagicTrigger;
import magic.model.trigger.MagicTriggerType;
public class Call_to_the_Grave {
public static final MagicTrigger T1 = new MagicTrigger(MagicTriggerType.AtUpkeep) {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
final MagicPlayer player = (MagicPlayer)data;
return new MagicEvent(
permanent,
player,
new Object[]{permanent,player},
this,
player + " sacrifices a non-Zombie creature.");
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
final MagicPlayer player = (MagicPlayer)data[1];
if (player.controlsPermanentWithType(MagicType.Creature)) {
game.addEvent(new MagicSacrificePermanentEvent(
(MagicPermanent)data[0],
player,
MagicTargetChoice.SACRIFICE_NON_ZOMBIE));
}
}
};
public static final MagicTrigger T2 = new MagicTrigger(MagicTriggerType.AtEndOfTurn) {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
final Collection<MagicTarget> targets =
game.filterTargets(permanent.getController(),MagicTargetFilter.TARGET_CREATURE);
if (targets.size() == 0) {
game.doAction(new MagicSacrificeAction(permanent));
}
return null;
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
}
};
}

View File

@ -147,6 +147,8 @@ public class MagicTargetChoice extends MagicChoice {
new MagicTargetChoice(MagicTargetFilter.TARGET_BEAST_YOU_CONTROL,false,MagicTargetHint.None,"a Beast to sacrifice");
public static final MagicTargetChoice SACRIFICE_GOBLIN=
new MagicTargetChoice(MagicTargetFilter.TARGET_GOBLIN_YOU_CONTROL,false,MagicTargetHint.None,"a Goblin to sacrifice");
public static final MagicTargetChoice SACRIFICE_NON_ZOMBIE=
new MagicTargetChoice(MagicTargetFilter.TARGET_NON_ZOMBIE_YOU_CONTROL,false,MagicTargetHint.None,"a non-Zombie creature to sacrifice");
public static final MagicTargetChoice TARGET_CREATURE_CARD_FROM_GRAVEYARD=
new MagicTargetChoice(MagicTargetFilter.TARGET_CREATURE_CARD_FROM_GRAVEYARD,false,MagicTargetHint.None,"target creature card from your graveyard");
public static final MagicTargetChoice TARGET_PERMANENT_CARD_CMC_LEQ_3_FROM_GRAVEYARD=

View File

@ -442,6 +442,21 @@ public interface MagicTargetFilter {
return targetType==MagicTargetType.Permanent;
}
};
public static final MagicTargetFilter TARGET_NON_ZOMBIE_YOU_CONTROL = new MagicTargetFilter() {
public boolean accept(final MagicGame game,final MagicPlayer player,final MagicTarget target) {
return target.getController() == player &&
((MagicPermanent)target).isCreature() &&
!((MagicPermanent)target).hasSubType(MagicSubType.Zombie);
}
public boolean acceptType(final MagicTargetType targetType) {
return targetType == MagicTargetType.Permanent;
}
};
public static final MagicTargetFilter TARGET_CREATURE_YOUR_OPPONENT_CONTROLS=new MagicTargetFilter() {