mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08: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,
|
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 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.
|
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.
|
// 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 {
|
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
|
switch (zEvent.getToZone()) { // Normal commander movement is handled in state-based actions in GameImpl
|
||||||
case BATTLEFIELD:
|
case BATTLEFIELD:
|
||||||
case GRAVEYARD:
|
case GRAVEYARD:
|
||||||
|
case EXILED:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4297,10 +4297,12 @@ public abstract class PlayerImpl implements Player, Serializable {
|
||||||
game.getStack().remove(spell, game);
|
game.getStack().remove(spell, game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
game.informPlayers(this.getLogName() + " moves " + (withName ? card.getLogName()
|
if (Zone.EXILED.equals(game.getState().getZone(card.getId()))) { // only if target zone was not replaced
|
||||||
+ (card.isCopy() ? " (Copy)" : "") : "a card face down") + ' '
|
game.informPlayers(this.getLogName() + " moves " + (withName ? card.getLogName()
|
||||||
+ (fromZone != null ? "from " + fromZone.toString().toLowerCase(Locale.ENGLISH)
|
+ (card.isCopy() ? " (Copy)" : "") : "a card face down") + ' '
|
||||||
+ ' ' : "") + "to the exile zone");
|
+ (fromZone != null ? "from " + fromZone.toString().toLowerCase(Locale.ENGLISH)
|
||||||
|
+ ' ' : "") + "to the exile zone");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
result = true;
|
result = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue