added convenience constructors for MagicDrawAction and MagicDiscardEvent
parent
db5387f9a1
commit
1dc638b880
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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> {
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue