use constants for MagicGraveyardTargetPicker

master
melvin 2013-09-06 21:22:54 +08:00
parent 8c100853ab
commit 9c10316794
62 changed files with 81 additions and 73 deletions

View File

@ -25,7 +25,7 @@
return new MagicEvent(
source,
targetChoice,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts a creature card\$ with converted mana cost equal to " +
"the number of charge counters on SN from his or her hand onto the battlefield."

View File

@ -15,7 +15,7 @@
return new MagicEvent(
source,
MagicTargetChoice.TARGET_ARTIFACT_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Put target artifact card\$ from your graveyard on top of your library"
);

View File

@ -6,7 +6,7 @@
new MagicEvent(
permanent,
MagicTargetChoice.TARGET_SPIRIT_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target Spirit card\$ from your graveyard to your hand."
):

View File

@ -14,7 +14,7 @@
return new MagicEvent(
source,
MagicTargetChoice.TARGET_ARTIFACT_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Put target artifact card\$ from your graveyard on top of your library"
);

View File

@ -10,7 +10,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ return target creature card\$ from " +
"his or her graveyard to the battlefield."

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_ENCHANTMENT_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target enchantment card\$ from " +
"his or her graveyard to his or her hand."

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_ARTIFACT_OR_CREATURE_CARD_FROM_ALL_GRAVEYARDS,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target artifact or creature card\$ from a graveyard onto the battlefield under your control. "+
"Shuffle SN into its owner's library."

View File

@ -13,9 +13,8 @@
public MagicEvent getPermanentEvent(final MagicPermanent source, final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_ALL_GRAVEYARDS,
// exiling a high cost card is good here
new MagicGraveyardTargetPicker(true),
MagicTargetChoice.Negative("target creature card from a graveyard"),
MagicGraveyardTargetPicker.ExileOpp,
this,
"Exile target creature card\$ from a graveyard. " +
"Put a 2/2 black Zombie creature token onto the battlefield."

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_CREATURE_CARD_WITH_INFECT_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target creature card\$ with " +
"infect from his or her graveyard to his or her hand."

View File

@ -14,8 +14,7 @@
return new MagicEvent(
source,
MagicTargetChoice.NEG_TARGET_CARD_FROM_ALL_GRAVEYARDS,
// exiling a high cost card is good here
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.ExileOpp,
this,
"Exile target card\$ from a graveyard."
);

View File

@ -23,7 +23,7 @@ def event = {
return new MagicEvent(
permanent,
choice,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
action,
"Return another target creature card\$ from your graveyard to your hand."
);

View File

@ -8,7 +8,7 @@
new MagicMayChoice(
MagicTargetChoice.CREATURE_CARD_FROM_HAND
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ put a creature card\$ from his or her hand " +
"onto the battlefield and attach SN to it."

View File

@ -6,7 +6,7 @@
new MagicEvent(
permanent,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_ALL_GRAVEYARDS,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Put target creature card\$ in a graveyard onto the battlefield under your control."
):

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target creature card\$ from your graveyard to the " +
"battlefield. If it's an Angel, put two +1/+1 counters on it."

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target creature card\$ from your graveyard to your hand."
);

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target creature card\$ from your graveyard to your hand. " +
"If the buyback cost was payed, return SN to its owner's hand as it resolves."

View File

@ -16,7 +16,7 @@
return new MagicEvent(
source,
MagicTargetChoice.MULTICOLORED_CREATURE_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts a multicolored creature card\$ from his or her hand onto the battlefield."
);

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_GREEN_CREATURE_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Put a green creature card\$ from your hand onto the battlefield."
);

View File

@ -18,7 +18,7 @@
return new MagicEvent(
permanent,
targetChoice,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN returns target creature card\$ with " +
"converted mana cost 2 or less " +

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.BASIC_LAND_CARD_FROM_HAND
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ put a basic land card\$ from his or her hand into play tapped."
);

View File

@ -16,7 +16,7 @@
return new MagicEvent(
source,
MagicTargetChoice.CREATURE_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts a creature card\$ from his or her hand onto the battlefield."
);

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target card\$ from " +
"his or her graveyard to his or her hand."

View File

@ -31,7 +31,7 @@ def EVENT_ACTION = new MagicEventAction() {
event.getSource(),
player,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
EVENT_ACTION,
"PN puts a creature card from his or her graveyard onto the battlefield."
));

View File

@ -9,7 +9,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_ARTIFACT_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target artifact card\$ " +
"from his or her graveyard to his or her hand."

View File

@ -9,7 +9,7 @@
new MagicMayChoice(
MagicTargetChoice.GOBLIN_CARD_FROM_HAND
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ put a Goblin permanent card\$ from " +
"his or her hand onto the battlefield."

View File

@ -18,7 +18,7 @@ def action = {
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target creature card\$ from your graveyard to your hand."
);

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target creature card\$ from " +
"his or her graveyard to his or her hand."

View File

@ -40,7 +40,7 @@ def action = {
event.getSource(),
targetPlayer,
MagicTargetChoice.TARGET_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.ExileOwn,
player,
action,
"PN exiles a card\$ from his or her graveyard."

View File

@ -11,7 +11,7 @@
permanent.isController(target) ?
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD :
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_OPPONENTS_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target creature card\$ from ${target.toString()}'s graveyard to the battlefield under PN's control."
):

View File

@ -8,7 +8,7 @@
return new MagicEvent(
permanent,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target creature card\$ from " +
"your graveyard to the battlefield."

View File

@ -12,7 +12,7 @@
return new MagicEvent(
source,
MagicTargetChoice.TARGET_ZOMBIE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target Zombie card\$ from your graveyard to your hand."
);

View File

@ -17,7 +17,7 @@
return new MagicEvent(
source,
MagicTargetChoice.ARTIFACT_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts an artifact card\$ from his or her hand onto the battlefield."
);

View File

@ -14,7 +14,7 @@
return new MagicEvent(
source,
MagicTargetChoice.BLUE_OR_RED_CREATURE_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts a blue or red creature card\$ from his or her hand onto the battlefield."
);

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_INSTANT_OR_SORCERY_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target instant or sorcery card\$ " +
"from his or her graveyard to his or her hand."

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_PERMANENT_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target permanent card\$ from your graveyard to your hand."
);

View File

@ -5,7 +5,7 @@
return new MagicEvent(
permanent,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_OPPONENTS_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Put target creature card\$ in an opponent's graveyard onto the battlefield under your control. "+
"It has haste. At the end of your turn, exile it."

View File

@ -16,7 +16,7 @@
return new MagicEvent(
source,
MagicTargetChoice.CREATURE_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts a creature card\$ from his or her hand onto the battlefield."
);

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_ALL_GRAVEYARDS,
new MagicGraveyardTargetPicker(false), // no mana cost but payed with life
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Put target creature card\$ from a graveyard onto the battlefield under your control. " +
"PN loses life equal to its converted mana cost."

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Put target card\$ from your graveyard on top of your library."
);

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target card\$ from your graveyard to your hand."
);

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target creature card\$ from your graveyard to your hand. Draw a card."
);

View File

@ -24,7 +24,7 @@
return new MagicEvent(
source,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target creature card\$ from your graveyard to the battlefield."
);

View File

@ -8,7 +8,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ return target creature card\$ from " +
"his or her graveyard to the battlefield."

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_ALL_GRAVEYARDS,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Put target creature\$ card from a graveyard onto the battlefield under your control. " +
"That creature is a black Zombie in addition to its other colors and types."

View File

@ -14,8 +14,7 @@
return new MagicEvent(
source,
MagicTargetChoice.NEG_TARGET_CARD_FROM_ALL_GRAVEYARDS,
// exiling a high cost card is good here
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.ExileOpp,
this,
"Exile target card\$ from a graveyard. " +
"If it was a creature card, put a +1/+1 counter on Scavenging Ooze and you gain 1 life."

View File

@ -16,7 +16,7 @@ def Spirit = new MagicStatic(MagicLayer.Type) {
new MagicMayChoice(
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN 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 " +

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_ARTIFACT_CARD_FROM_GRAVEYARD,
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ return target artifact card\$ from your graveyard to the battlefield."
);

View File

@ -6,7 +6,7 @@
new MagicEvent(
permanent,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target creature card\$ from your graveyard to the battlefield."
):

View File

@ -17,7 +17,7 @@
return new MagicEvent(
source,
MagicTargetChoice.LAND_CARD_FROM_HAND,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN puts a land card\$ from his or her hand onto the battlefield."
);

View File

@ -7,7 +7,9 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(MagicCondition.THRESHOLD_CONDITION.accept(cardOnStack)),
MagicCondition.THRESHOLD_CONDITION.accept(cardOnStack) ?
MagicGraveyardTargetPicker.PutOntoBattlefield :
MagicGraveyardTargetPicker.ReturnToHand,
this,
"Return target creature card\$ from your graveyard to your hand. " +
"Return that card from your graveyard to the battlefield instead " +

View File

@ -15,7 +15,7 @@ def event = {
return new MagicEvent(
permanent,
MagicTargetChoice.TARGET_PERMANENT_CARD_CMC_LEQ_3_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
action,
"Return target permanent card\$ with converted mana cost 3 or less " +
"from your graveyard to the battlefield."

View File

@ -10,7 +10,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN gains 3 life and may\$ return target creature card\$ " +
"from his or her graveyard to his or her hand."

View File

@ -7,7 +7,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_ARTIFACT_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target artifact card\$ from " +
"his or her graveyard to his or her hand."

View File

@ -8,7 +8,7 @@
return new MagicEvent(
permanent,
MagicTargetChoice.NEG_TARGET_CARD_FROM_ALL_GRAVEYARDS,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.ExileOpp,
this,
"Put target card\$ from a graveyard " +
"on the bottom of its owner's library."

View File

@ -10,7 +10,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_ARTIFACT_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target artifact card\$ from " +
"his or her graveyard to his or her hand."

View File

@ -8,7 +8,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_GOBLIN_CARD_FROM_GRAVEYARD
),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may\$ return target Goblin card\$ from " +
"his or her graveyard to his or her hand."

View File

@ -10,7 +10,7 @@
new MagicMayChoice(
MagicTargetChoice.TARGET_INSTANT_OR_SORCERY_CARD_FROM_OPPONENTS_GRAVEYARD
),
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"PN may\$ cast target instant or sorcery card\$ from your opponent's graveyard without paying its mana cost. "+
"If that card would be put into a graveyard this turn, exile it instead."

View File

@ -5,7 +5,7 @@
return new MagicEvent(
cardOnStack,
MagicTargetChoice.TARGET_CREATURE_CARD_FROM_GRAVEYARD,
new MagicGraveyardTargetPicker(true),
MagicGraveyardTargetPicker.PutOntoBattlefield,
this,
"Return target creature card\$ from your graveyard to the battlefield."
);

View File

@ -7,17 +7,26 @@ import magic.model.MagicPlayer;
public class MagicGraveyardTargetPicker extends MagicTargetPicker<MagicCard> {
private final boolean noCastingCost;
private final boolean free;
private int order;
public MagicGraveyardTargetPicker(final boolean noCastingCost) {
this.noCastingCost = noCastingCost;
public static MagicGraveyardTargetPicker ExileOwn = new MagicGraveyardTargetPicker(true, -1);
public static MagicGraveyardTargetPicker ExileOpp = new MagicGraveyardTargetPicker(true, 1);
public static MagicGraveyardTargetPicker ReturnToHand = new MagicGraveyardTargetPicker(false, 1);
public static MagicGraveyardTargetPicker PutOntoBattlefield = new MagicGraveyardTargetPicker(true, 1);
private MagicGraveyardTargetPicker(final boolean aFree, final int aOrder) {
free = aFree;
order = aOrder;
}
@Override
protected int getTargetScore(final MagicGame game,final MagicPlayer player,final MagicCard target) {
return noCastingCost ?
ArtificialScoringSystem.getFreeCardScore(target):
ArtificialScoringSystem.getCardScore(target);
return order *
(free ? ArtificialScoringSystem.getFreeCardScore(target):
ArtificialScoringSystem.getCardScore(target));
}
}

View File

@ -40,7 +40,7 @@ public class MagicSoulshiftTrigger extends MagicWhenDiesTrigger {
return new MagicEvent(
permanent,
new MagicMayChoice(targetChoice),
new MagicGraveyardTargetPicker(false),
MagicGraveyardTargetPicker.ReturnToHand,
this,
"PN may$ return target Spirit card$ with " +
"converted mana cost " + cmc + " or less " +