magefree / mage

Magic Another Game Engine
http://xmage.today
MIT License
1.88k stars 767 forks source link

You should be able to puts cards from your library into your graveyard in any order #10740

Open sebastiandine opened 1 year ago

sebastiandine commented 1 year ago

When you put cards from your library directly in your graveyard, you should be able to modify their order. On Magic Online this feature is implemented ( you can either select "Any order" to put them in the graveyard as they appear or manually modify their order). This is important when you mill your deck with cards like [[Hermit Druid]] and want to reanimate a specific creature with [[Shallow Grave]].

github-actions[bot] commented 1 year ago

Hermit Druid - (Gatherer) (Scryfall) (EDHREC)

{1}{G} Creature — Human Druid 1/1 {G}, {T}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.

Shallow Grave - (Gatherer) (Scryfall) (EDHREC)

{1}{B} Instant Return the top creature card of your graveyard to the battlefield. That creature gains haste until end of turn. Exile it at the beginning of the next end step.

xenohedron commented 1 year ago

There is a setting in preferences for automatically choosing the order cards go to the graveyard. It is enabled by default and can be disabled if manual order is important.

sebastiandine commented 1 year ago

I have the setting "Ask player for setting order cards go to graveyard" enabled. Still, it does not ask me when I activate [[Hermit Druid]]. Maybe there is something missing in the implementation of [[Hermit Druid]]?

github-actions[bot] commented 1 year ago

Hermit Druid - (Gatherer) (Scryfall) (EDHREC)

{1}{G} Creature — Human Druid 1/1 {G}, {T}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.

Hermit Druid - (Gatherer) (Scryfall) (EDHREC)

{1}{G} Creature — Human Druid 1/1 {G}, {T}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.

xenohedron commented 1 year ago

Hmmm if that's the case then it's being handled by PutCards.GRAVEYARD which calls a common method, so would be similarly bugged in many other circumstances.

xenohedron commented 1 year ago

A look through the chained methods in the codebase brings me to a method in PlayerImpl that asks to choose order (if preference set and more than one card), so not sure what could be causing this. Curious if anyone else can reproduce?