replace class MagicSacrificeAtEnd with a constant in MagicAtEndOfTurnTrigger

master
melvin 2013-06-23 20:38:04 +08:00
parent 792adaaf32
commit 98d50200b3
4 changed files with 24 additions and 49 deletions

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
if (payedCost.isKicked() == false) {
game.doAction(new MagicAddTriggerAction(permanent, MagicSacrificeAtEnd.create()));
game.doAction(new MagicAddTriggerAction(permanent, MagicAtEndOfTurnTrigger.SacrificeAtEnd));
}
return MagicEvent.NONE;
}

View File

@ -64,7 +64,6 @@ import magic.model.trigger.MagicThiefTrigger.Choice;
import magic.model.trigger.MagicThiefTrigger.Player;
import magic.model.trigger.MagicWhenBlocksPumpTrigger;
import magic.model.trigger.MagicWhenComesIntoPlayTrigger;
import magic.model.trigger.MagicSacrificeAtEnd;
import magic.model.trigger.MagicWhenDiesTrigger;
import magic.model.trigger.MagicAtEndOfTurnTrigger;
import magic.model.trigger.MagicAtUpkeepTrigger;
@ -372,7 +371,7 @@ public enum MagicAbility {
SacAtEnd("sac at end",-100) {
public void addAbilityImpl(final MagicCardDefinition card, final String arg) {
assert arg.isEmpty() : this + " does not accept arg = " + arg;
card.add(MagicSacrificeAtEnd.create());
card.add(MagicAtEndOfTurnTrigger.SacrificeAtEnd);
}
},
ChargeAtUpkeep("charge at upkeep",10) {

View File

@ -5,6 +5,7 @@ import magic.model.MagicLocationType;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicRemoveFromPlayAction;
import magic.model.action.MagicSacrificeAction;
import magic.model.event.MagicEvent;
public abstract class MagicAtEndOfTurnTrigger extends MagicTrigger<MagicPlayer> {
@ -20,18 +21,12 @@ public abstract class MagicAtEndOfTurnTrigger extends MagicTrigger<MagicPlayer>
public static final MagicAtEndOfTurnTrigger ReturnAtEnd = new MagicAtEndOfTurnTrigger() {
@Override
public MagicEvent executeTrigger(
final MagicGame game,
final MagicPermanent permanent,
final MagicPlayer eotPlayer) {
final MagicPlayer player = permanent.getController();
return (player == eotPlayer) ?
new MagicEvent(
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPlayer eotPlayer) {
return new MagicEvent(
permanent,
player,
this,
"Return SN to its owner's hand."):
MagicEvent.NONE;
"Return SN to its owner's hand."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
@ -41,4 +36,19 @@ public abstract class MagicAtEndOfTurnTrigger extends MagicTrigger<MagicPlayer>
));
}
};
public static final MagicAtEndOfTurnTrigger SacrificeAtEnd = new MagicAtEndOfTurnTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer eotPlayer) {
return new MagicEvent(
permanent,
this,
"Sacrifice SN."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicSacrificeAction(event.getPermanent()));
}
};
}

View File

@ -1,34 +0,0 @@
package magic.model.trigger;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicSacrificeAction;
import magic.model.event.MagicEvent;
public class MagicSacrificeAtEnd extends MagicAtEndOfTurnTrigger {
private static final MagicSacrificeAtEnd INSTANCE = new MagicSacrificeAtEnd();
private MagicSacrificeAtEnd() {}
public static MagicSacrificeAtEnd create() {
return INSTANCE;
}
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer eotPlayer) {
final MagicPlayer player = permanent.getController();
return (player == eotPlayer) ?
new MagicEvent(
permanent,
player,
this,
"Sacrifice SN."):
MagicEvent.NONE;
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicSacrificeAction(event.getPermanent()));
}
}