mirror of
https://github.com/correl/mage.git
synced 2024-12-24 11:50:45 +00:00
* Oathbreaker: Signature spell did not return to command zone if exiled (fixes #6870).
This commit is contained in:
parent
7f3b24365e
commit
b965bddf92
2 changed files with 14 additions and 4 deletions
|
@ -26,6 +26,13 @@ import mage.players.Player;
|
|||
903.9a If a commander is a melded permanent and its owner chooses to put it into the command zone this way,
|
||||
that permanent and the card representing it that isn’t a commander are put into the appropriate zone, and the card
|
||||
that represents it and is a commander is put into the command zone.
|
||||
|
||||
The new state-based action that helps accomplish this rules change is worded as follows: (again, quoting from the announcement)
|
||||
“If a commander is in a graveyard or in exile and that card was put into that zone since the last time state-based actions were checked,
|
||||
its owner may put it into the command zone.
|
||||
|
||||
If a commander would be put into its owner’s hand or library from anywhere, its owner may put it into the command zone instead.
|
||||
This replacement effect may apply more than once to the same event.”
|
||||
*/
|
||||
// Oathbreaker mode: If your Oathbreaker changes zones, you may return it to the Command Zone. The Signature Spell must return to the Command Zone.
|
||||
public class CommanderReplacementEffect extends ReplacementEffectImpl {
|
||||
|
@ -121,6 +128,7 @@ public class CommanderReplacementEffect extends ReplacementEffectImpl {
|
|||
switch (zEvent.getToZone()) { // Normal commander movement is handled in state-based actions in GameImpl
|
||||
case BATTLEFIELD:
|
||||
case GRAVEYARD:
|
||||
case EXILED:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4297,10 +4297,12 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
game.getStack().remove(spell, game);
|
||||
}
|
||||
}
|
||||
game.informPlayers(this.getLogName() + " moves " + (withName ? card.getLogName()
|
||||
+ (card.isCopy() ? " (Copy)" : "") : "a card face down") + ' '
|
||||
+ (fromZone != null ? "from " + fromZone.toString().toLowerCase(Locale.ENGLISH)
|
||||
+ ' ' : "") + "to the exile zone");
|
||||
if (Zone.EXILED.equals(game.getState().getZone(card.getId()))) { // only if target zone was not replaced
|
||||
game.informPlayers(this.getLogName() + " moves " + (withName ? card.getLogName()
|
||||
+ (card.isCopy() ? " (Copy)" : "") : "a card face down") + ' '
|
||||
+ (fromZone != null ? "from " + fromZone.toString().toLowerCase(Locale.ENGLISH)
|
||||
+ ' ' : "") + "to the exile zone");
|
||||
}
|
||||
|
||||
}
|
||||
result = true;
|
||||
|
|
Loading…
Reference in a new issue