mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- 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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Artifact
|
||||
A:AB$ Repeat | Cost$ 3 T | ValidTgts$ Player | RepeatSubAbility$ DBCleanAndGrind | MaxRepeat$ MaxRepeats | RepeatCheckSVar$ MilledSharesColor | References$ MilledSharesColor,MaxRepeats | RepeatSVarCompare$ EQ2 | SubAbility$ DBCleanup | SpellDescription$ Target player puts the top two cards of his or her library into his or her graveyard. If both cards share a color, repeat this process. | StackDescription$ SpellDescription
|
||||
SVar:DBCleanAndGrind:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBPeek
|
||||
SVar:DBPeek:DB$ PeekAndReveal | Defined$ Targeted | PeekAmount$ 2 | NoPeek$ True | NoReveal$ True | RememberPeeked$ True | SubAbility$ DBGrind
|
||||
SVar:DBGrind:DB$ Mill | NumCards$ 2 | Defined$ Targeted
|
||||
SVar:DBGrind:DB$ Mill | NumCards$ 2 | Defined$ Targeted | NoReveal$ True
|
||||
SVar:MaxRepeats:TargetedPlayer$CardsInLibrary
|
||||
SVar:MilledSharesColor:RememberedLKI$Valid Card.SharesColorWith Remembered
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Artifact
|
||||
#Doesn't interact properly with Myr Welder right now
|
||||
A:AB$ Repeat | Cost$ XCantBe0 X T | ValidTgts$ Opponent | MaxRepeat$ MaxRepeats | RepeatSubAbility$ DBCleanBeforeRepeat | RepeatCheckSVar$ AccumlatedMilled | RepeatSVarCompare$ LTX | AILogic$ MaxX | StackDescription$ Target opponent puts cards from the top of his or her library into his or her graveyard until a creature card or X cards are put into that graveyard this way, whichever comes first. If a creature card is put into that graveyard this way, sacrifice Helm of Obedience and put that card onto the battlefield under your control. X can't be 0. | SpellDescription$ Target opponent puts cards from the top of his or her library into his or her graveyard until a creature card or X cards are put into that graveyard this way, whichever comes first. If a creature card is put into that graveyard this way, sacrifice Helm of Obedience and put that card onto the battlefield under your control. X can't be 0. | SubAbility$ DBSacHelm
|
||||
SVar:DBCleanBeforeRepeat:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBMill
|
||||
SVar:DBMill:DB$ Mill | NumCards$ 1 | RememberMilled$ True | Defined$ Targeted | SubAbility$ DBAccumulateX
|
||||
SVar:DBMill:DB$ Mill | NumCards$ 1 | RememberMilled$ True | Defined$ Targeted | SubAbility$ DBAccumulateX | NoReveal$ True
|
||||
SVar:DBAccumulateX:DB$ StoreSVar | SVar$ AccumlatedMilled | Type$ CountSVar | Expression$ AccumlatedMilled/Plus.1 | ConditionCheckSVar$ MilledCard | ConditionSVarCompare$ EQ1 | SubAbility$ DBMilledCreature
|
||||
SVar:DBMilledCreature:DB$ StoreSVar | SVar$ AccumlatedMilled | Type$ CountSVar | Expression$ X | ConditionCheckSVar$ MilledCreature | ConditionSVarCompare$ EQ1 | SubAbility$ DBEmptyLibrary
|
||||
SVar:DBEmptyLibrary:DB$ StoreSVar | SVar$ AccumlatedMilled | Type$ CountSVar | Expression$ X | ConditionCheckSVar$ TargetedLibrary | ConditionSVarCompare$ EQ0
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Mesmeric Orb
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
T:Mode$ Untaps | ValidCard$ Card | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever a permanent becomes untapped, that permanent's controller puts the top card of his or her library into his or her graveyard.
|
||||
SVar:TrigMill:AB$Mill | Cost$ 0 | Defined$ TriggeredCardController | NumCards$ 1
|
||||
SVar:TrigMill:AB$ Mill | Cost$ 0 | Defined$ TriggeredCardController | NumCards$ 1 | NoReveal$ True
|
||||
SVar:RemRandomDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/mesmeric_orb.jpg
|
||||
Oracle:Whenever a permanent becomes untapped, that permanent's controller puts the top card of his or her library into his or her graveyard.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Uba Mask
|
||||
ManaCost:4
|
||||
Types:Artifact
|
||||
R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ Player | ReplaceWith$ ExileTop | Description$ If a player would draw a card, that player exiles that card face up instead.
|
||||
SVar:ExileTop:AB$ Mill | Cost$ 0 | Defined$ ReplacedPlayer | NumCards$ 1 | Destination$ Exile | RememberMilled$ True
|
||||
SVar:ExileTop:AB$ Mill | Cost$ 0 | Defined$ ReplacedPlayer | NumCards$ 1 | Destination$ Exile | RememberMilled$ True | NoReveal$ True
|
||||
S:Mode$ Continuous | AffectedZone$ Exile | Affected$ Card.IsRemembered | AddHiddenKeyword$ May be played | Description$ Each player may play cards he or she exiled with CARDNAME this turn.
|
||||
T:Mode$ Phase | Phase$ Cleanup | Execute$ TrigReset | Static$ True
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReset | Static$ True
|
||||
|
||||
Reference in New Issue
Block a user