diff --git a/src/main/java/forge/card/replacement/ReplaceDraw.java b/src/main/java/forge/card/replacement/ReplaceDraw.java index 2e6391a4b0f..d0691a209ee 100644 --- a/src/main/java/forge/card/replacement/ReplaceDraw.java +++ b/src/main/java/forge/card/replacement/ReplaceDraw.java @@ -21,6 +21,8 @@ import java.util.Map; import forge.Card; import forge.card.spellability.SpellAbility; +import forge.game.phase.PhaseType; +import forge.game.player.Player; /** * TODO: Write javadoc for this type. @@ -51,6 +53,14 @@ public class ReplaceDraw extends ReplacementEffect { return false; } } + if (this.getMapParams().containsKey("NotFirstCardInDrawStep")) { + final Player p = (Player)runParams.get("Affected"); + if (p.numDrawnThisDrawStep() == 0 + && this.getHostCard().getController().getGame().getPhaseHandler().is(PhaseType.DRAW) + && this.getHostCard().getController().getGame().getPhaseHandler().getPlayerTurn().equals(p)) { + return false; + } + } return true; } diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index b7a5b7687d6..1326d4f2d78 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -1565,6 +1565,17 @@ public abstract class Player extends GameEntity implements Comparable { return this.numDrawnThisTurn; } + /** + *

+ * Getter for the field numDrawnThisTurnDrawStep. + *

+ * + * @return a int. + */ + public final int numDrawnThisDrawStep() { + return this.numDrawnThisDrawStep; + } + // ////////////////////////////// // / // / replaces Singletons.getModel().getGameAction().discard* methods