move boilerplate from groovy code into MagicBloodrushActivation

master
melvin 2013-02-14 22:34:29 +08:00
parent 7861c9f8d1
commit 83edbeb0d0
3 changed files with 19 additions and 24 deletions

View File

@ -1,15 +1,7 @@
[
new MagicBloodrushActivation(MagicManaCost.RED_GREEN) {
@Override
public MagicEvent getCardEvent(final MagicCard source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ATTACKING_CREATURE,
MagicPumpTargetPicker.create(),
this,
"Target attacking creature\$ gets +4/+4 and gains trample until end of turn."
);
}
new MagicBloodrushActivation(
MagicManaCost.RED_GREEN,
"Target attacking creature\$ gets +4/+4 and gains trample until end of turn.") {
@Override
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] choiceResults) {
event.processTargetPermanent(game,choiceResults,0,new MagicPermanentAction() {

View File

@ -6,17 +6,9 @@
pt.set(size, size);
}
},
new MagicBloodrushActivation(MagicManaCost.ONE_RED_GREEN) {
@Override
public MagicEvent getCardEvent(final MagicCard source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ATTACKING_CREATURE,
MagicPumpTargetPicker.create(),
this,
"Target attacking creature\$ gets +X/+X until end of turn, where X is the number of lands you control."
);
}
new MagicBloodrushActivation(
MagicManaCost.ONE_RED_GREEN,
"Target attacking creature\$ gets +X/+X until end of turn, where X is the number of lands you control.") {
@Override
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] choiceResults) {
final int size = game.filterPermanents(event.getPlayer(),MagicTargetFilter.TARGET_LAND_YOU_CONTROL).size();

View File

@ -13,12 +13,14 @@ import magic.model.choice.MagicTargetChoice;
import magic.model.condition.MagicCondition;
import magic.model.stack.MagicCardOnStack;
import magic.model.stack.MagicAbilityOnStack;
import magic.model.target.MagicPumpTargetPicker;
public abstract class MagicBloodrushActivation extends MagicCardActivation {
final MagicManaCost cost;
final String desc;
public MagicBloodrushActivation(final MagicManaCost aCost) {
public MagicBloodrushActivation(final MagicManaCost aCost, final String aDesc) {
super(
new MagicCondition[]{
aCost.getCondition()
@ -27,6 +29,7 @@ public abstract class MagicBloodrushActivation extends MagicCardActivation {
"Bloodrush"
);
cost = aCost;
desc = aDesc;
}
public MagicEvent[] getCostEvent(final MagicCard source) {
@ -63,7 +66,15 @@ public abstract class MagicBloodrushActivation extends MagicCardActivation {
);
}
public abstract MagicEvent getCardEvent(final MagicCard source,final MagicPayedCost payedCost);
public MagicEvent getCardEvent(final MagicCard source,final MagicPayedCost payedCost) {
return new MagicEvent(
source,
MagicTargetChoice.POS_TARGET_ATTACKING_CREATURE,
MagicPumpTargetPicker.create(),
this,
desc
);
}
@Override
final MagicTargetChoice getTargetChoice(final MagicCard source) {