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 @Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) { public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
if (payedCost.isKicked() == false) { if (payedCost.isKicked() == false) {
game.doAction(new MagicAddTriggerAction(permanent, MagicSacrificeAtEnd.create())); game.doAction(new MagicAddTriggerAction(permanent, MagicAtEndOfTurnTrigger.SacrificeAtEnd));
} }
return MagicEvent.NONE; 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.MagicThiefTrigger.Player;
import magic.model.trigger.MagicWhenBlocksPumpTrigger; import magic.model.trigger.MagicWhenBlocksPumpTrigger;
import magic.model.trigger.MagicWhenComesIntoPlayTrigger; import magic.model.trigger.MagicWhenComesIntoPlayTrigger;
import magic.model.trigger.MagicSacrificeAtEnd;
import magic.model.trigger.MagicWhenDiesTrigger; import magic.model.trigger.MagicWhenDiesTrigger;
import magic.model.trigger.MagicAtEndOfTurnTrigger; import magic.model.trigger.MagicAtEndOfTurnTrigger;
import magic.model.trigger.MagicAtUpkeepTrigger; import magic.model.trigger.MagicAtUpkeepTrigger;
@ -372,7 +371,7 @@ public enum MagicAbility {
SacAtEnd("sac at end",-100) { SacAtEnd("sac at end",-100) {
public void addAbilityImpl(final MagicCardDefinition card, final String arg) { public void addAbilityImpl(final MagicCardDefinition card, final String arg) {
assert arg.isEmpty() : this + " does not accept arg = " + arg; assert arg.isEmpty() : this + " does not accept arg = " + arg;
card.add(MagicSacrificeAtEnd.create()); card.add(MagicAtEndOfTurnTrigger.SacrificeAtEnd);
} }
}, },
ChargeAtUpkeep("charge at upkeep",10) { ChargeAtUpkeep("charge at upkeep",10) {

View File

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