- Several cards with MillEffect will never reveal the milled cards now (e.g. Helm of Obedience/Rest in Peace combo, Painters combo)

This commit is contained in:
swordshine
2015-01-21 13:40:15 +00:00
parent 541f28c203
commit 54f23f81a5
6 changed files with 13 additions and 12 deletions

View File

@@ -19,6 +19,7 @@ public class MillEffect extends SpellAbilityEffect {
final int numCards = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumCards"), sa);
final boolean bottom = sa.hasParam("FromBottom");
final boolean facedown = sa.hasParam("ExileFaceDown");
final boolean reveal = !sa.hasParam("NoReveal");
if (sa.hasParam("ForgetOtherRemembered")) {
source.clearRemembered();
@@ -39,7 +40,12 @@ public class MillEffect extends SpellAbilityEffect {
continue;
}
}
final CardCollectionView milled = p.mill(numCards, destination, bottom, facedown);
final CardCollectionView milled = p.mill(numCards, destination, bottom);
// Reveal the milled cards, so players don't have to manually inspect the
// graveyard to figure out which ones were milled.
if (!facedown && reveal) { // do not reveal when exiling face down
p.getGame().getAction().reveal(milled, p, false);
}
if (destination.equals(ZoneType.Exile) && facedown) {
for (final Card c : milled) {
c.setState(CardStateName.FaceDown, true);

View File

@@ -1306,10 +1306,10 @@ public class Player extends GameEntity implements Comparable<Player> {
}
public final CardCollectionView mill(final int n) {
return mill(n, ZoneType.Graveyard, false, false);
return mill(n, ZoneType.Graveyard, false);
}
public final CardCollectionView mill(final int n, final ZoneType zone,
final boolean bottom, final boolean facedown) {
final boolean bottom) {
final CardCollectionView lib = getCardsIn(ZoneType.Library);
final CardCollection milled = new CardCollection();
@@ -1325,11 +1325,6 @@ public class Player extends GameEntity implements Comparable<Player> {
milled.add(game.getAction().moveTo(destination, lib.getFirst()));
}
}
// Reveal the milled cards, so players don't have to manually inspect the
// graveyard to figure out which ones were milled.
if (!facedown) { // do not reveal when exiling face down
game.getAction().reveal(milled, this, false);
}
return milled;
}