added MagicLandfallTrigger
parent
e427390489
commit
fcb1e016ce
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue