added convenience constructors for MagicDrawAction and MagicDiscardEvent

master
melvin 2013-06-22 10:55:52 +08:00
parent db5387f9a1
commit 1dc638b880
10 changed files with 54 additions and 24 deletions

View File

@ -18,6 +18,10 @@ public class MagicDrawAction extends MagicAction {
private final int amount;
private List<MagicCard> drawnCards;
public MagicDrawAction(final MagicPlayer player) {
this(player, 1);
}
public MagicDrawAction(final MagicPlayer player,final int amount) {
this.player=player;
this.amount=amount;

View File

@ -15,10 +15,38 @@ public class MagicDiscardEvent extends MagicEvent {
private final MagicCondition[] conds;
public MagicDiscardEvent(final MagicSource source,final int amount,final boolean random) {
this(source, source.getController(), amount, random);
public MagicDiscardEvent(final MagicSource source,final MagicPlayer player, final int amount) {
this(source, player, amount, false);
}
public MagicDiscardEvent(final MagicSource source,final MagicPlayer player) {
this(source, player, 1);
}
public MagicDiscardEvent(final MagicSource source,final int amount) {
this(source, source.getController(), amount);
}
public MagicDiscardEvent(final MagicSource source) {
this(source, source.getController(), 1);
}
public static MagicDiscardEvent Random(final MagicSource source, final MagicPlayer player, final int amount) {
return new MagicDiscardEvent(source, player, amount, true);
}
public static MagicDiscardEvent Random(final MagicSource source, final int amount) {
return Random(source, source.getController(), amount);
}
public static MagicDiscardEvent Random(final MagicSource source, final MagicPlayer player) {
return Random(source, player, 1);
}
public static MagicDiscardEvent Random(final MagicSource source) {
return Random(source, source.getController(), 1);
}
public MagicDiscardEvent(final MagicSource source,final MagicPlayer player,final int amount,final boolean random) {
super(
source,

View File

@ -10,21 +10,24 @@ public class MagicDrawEvent extends MagicEvent {
super(
source,
player,
new MagicEventAction() {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(event.getPlayer(),amount));
}
},
amount,
EVENT_ACTION,
"PN " + genDescription(amount)
);
}
private static final MagicEventAction EVENT_ACTION=new MagicEventAction() {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(event.getPlayer(), event.getRefInt()));
}
};
private static final String genDescription(final int amount) {
if (amount!=1) {
return " draws "+amount+" cards.";
if (amount != 1) {
return "draws "+amount+" cards.";
} else {
return " draws a card.";
return "draws a card.";
}
}
}

View File

@ -36,7 +36,7 @@ public class MagicCleanupPhase extends MagicPhase {
// discard excess cards
if (turnPlayer.getNumExcessCards() > 0) {
final int amount = turnPlayer.getNumExcessCards();
game.addEvent(new MagicDiscardEvent(MagicEvent.NO_SOURCE,turnPlayer,amount,false));
game.addEvent(new MagicDiscardEvent(MagicEvent.NO_SOURCE,turnPlayer,amount));
}
if (turnPlayer.getExtraTurns()>0) {
game.doAction(new MagicChangeExtraTurnsAction(turnPlayer,-1));

View File

@ -27,7 +27,7 @@ public class MagicDrawPhase extends MagicPhase {
}
final MagicPlayer player=game.getTurnPlayer();
game.doAction(new MagicDrawAction(player,1));
game.doAction(new MagicDrawAction(player));
game.executeTrigger(MagicTriggerType.AtDraw,game.getTurnPlayer());

View File

@ -34,7 +34,7 @@ public abstract class MagicAtDrawTrigger extends MagicTrigger<MagicPlayer> {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPlayer player = event.getPlayer();
game.doAction(new MagicDrawAction(player,1));
game.doAction(new MagicDrawAction(player));
}
};
}

View File

@ -6,7 +6,6 @@ import magic.model.MagicPlayer;
import magic.model.MagicCounterType;
import magic.model.event.MagicEvent;
import magic.model.action.MagicChangeCountersAction;
import magic.model.action.MagicDrawAction;
import magic.model.choice.MagicSimpleMayChoice;
public abstract class MagicAtUpkeepTrigger extends MagicTrigger<MagicPlayer> {

View File

@ -43,10 +43,8 @@ public class MagicDieDrawCardTrigger extends MagicWhenPutIntoGraveyardTrigger {
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (mustDraw) {
game.doAction(new MagicDrawAction(event.getPlayer(),1));
} else if (event.isYes()) {
game.doAction(new MagicDrawAction(event.getPlayer(),1));
if (mustDraw || event.isYes()) {
game.doAction(new MagicDrawAction(event.getPlayer()));
}
}
}

View File

@ -30,7 +30,7 @@ public class MagicEntersDrawCardTrigger extends MagicWhenComesIntoPlayTrigger {
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(event.getPlayer(),1));
game.doAction(new MagicDrawAction(event.getPlayer()));
}
}

View File

@ -67,9 +67,7 @@ public class MagicThiefTrigger extends MagicWhenDamageIsDealtTrigger {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (choice == choice.Must) {
game.doAction(new MagicDrawAction(event.getPlayer(),amount));
} else if (event.isYes()) {
if (choice == choice.Must || event.isYes()) {
game.doAction(new MagicDrawAction(event.getPlayer(),amount));
}
}