added MagicLandfallTrigger

master
melvin 2012-08-28 22:52:38 +08:00
parent e427390489
commit fcb1e016ce
2 changed files with 36 additions and 14 deletions

View File

@ -5,9 +5,9 @@ import magic.model.MagicPermanent;
import magic.model.MagicPlayer; import magic.model.MagicPlayer;
import magic.model.action.MagicChangeTurnPTAction; import magic.model.action.MagicChangeTurnPTAction;
import magic.model.event.MagicEvent; import magic.model.event.MagicEvent;
import magic.model.trigger.MagicWhenOtherComesIntoPlayTrigger; import magic.model.trigger.MagicLandfallTrigger;
public class MagicLandfallPumpTrigger extends MagicWhenOtherComesIntoPlayTrigger { public class MagicLandfallPumpTrigger extends MagicLandfallTrigger {
private final int power; private final int power;
private final int toughness; private final int toughness;
@ -17,20 +17,14 @@ public class MagicLandfallPumpTrigger extends MagicWhenOtherComesIntoPlayTrigger
} }
@Override @Override
public MagicEvent executeTrigger( protected MagicEvent getEvent(final MagicPermanent permanent) {
final MagicGame game, return new MagicEvent(
final MagicPermanent permanent,
final MagicPermanent played) {
final MagicPlayer player = permanent.getController();
return (player == played.getController() && played.isLand()) ?
new MagicEvent(
permanent, permanent,
player, permanent.getController(),
new Object[]{permanent}, MagicEvent.NO_DATA,
this, this,
permanent + " gets " + getString(power) + permanent + " gets " + getString(power) +
"/" + getString(toughness) + " until end of turn.") : "/" + getString(toughness) + " until end of turn.");
MagicEvent.NONE;
} }
@Override @Override
@ -40,7 +34,7 @@ public class MagicLandfallPumpTrigger extends MagicWhenOtherComesIntoPlayTrigger
final Object data[], final Object data[],
final Object[] choiceResults) { final Object[] choiceResults) {
game.doAction(new MagicChangeTurnPTAction( game.doAction(new MagicChangeTurnPTAction(
(MagicPermanent)data[0], (MagicPermanent)event.getSource(),
power, power,
toughness)); toughness));
} }

View File

@ -0,0 +1,28 @@
package magic.model.trigger;
import magic.model.MagicPermanent;
import magic.model.MagicGame;
import magic.model.MagicPlayer;
import magic.model.event.MagicEvent;
public abstract class MagicLandfallTrigger extends MagicWhenOtherComesIntoPlayTrigger {
public MagicLandfallTrigger(final int priority) {
super(priority);
}
public MagicLandfallTrigger() {}
public MagicTriggerType getType() {
return MagicTriggerType.WhenOtherComesIntoPlay;
}
protected abstract MagicEvent getEvent(final MagicPermanent permanent);
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent played) {
final MagicPlayer player = permanent.getController();
return (player == played.getController() && played.isLand()) ?
getEvent(permanent) :
MagicEvent.NONE;
}
}