Throne Room + Band of Misfits bug

Previous topic - Next topic

jeebus

Ok, I've now been looking at Band of Misfits interactions, and I found a bug. It concerns Throne + Band of Misfits.

TL;DR: TR + BoM is implemented so that TR plays BoM directly twice, instead of playing the chosen card the 2nd time. This results in too many cards being played, and "+" tokens on BoM triggering too many times.

Mostly things work correctly:

BoM as X counts as two played actions, because BoM plays X. I checked this by playing immediately Conspirator after.

TR + BoM as X will play X twice. (This functionally works, but is implemented incorrectly, so the amount of cards played is wrong and it will be wrong with "+" tokens. More below.)

TR + BoM as Embargo: Embargo is trashed, and you get to choose another card since BoM is not in play.

TR + BoM as Duration: TR will stay in play with the BoM (correct, since TR plays the Duration directly the 2nd time).

TR + BoM as Embargo, then as Duration: TR does not stay in play, because TR never played a Duration directly. Also tested with KC instead of TR.


Here's the bug:

Throne Room + BoM as X:
Here's how this is supposed to work: The 2nd time, TR doesn't play BoM, it plays X instead. This is because BoM isn't BoM anymore in play, it's X. What seems to happen instead, is that the BoM has the name "X", but it actually doesn't have the play ability of X, but rather the play ability of BoM, except it doesn't let you choose the card. This can be seen in the log too:

j plays a Throne Room.
    j plays a Band of Misfits.
        j plays a Caravan. [BoM plays itself as a Caravan]
    j plays a Caravan again. [Not really Caravan, but a quasi-BoM with the name "Caravan"]
        j plays a Caravan. [BoM plays itself as a Caravan]

Here Caravan seems to be played 3 times, but actually is only played twice. With Champion in play, we can count the Action cards being played. We started with 1, and ended with 7 Actions. First TR uses 1. Then TR adds 1, BoM adds 1, Caravan adds 2, BoM/"Caravan" adds 1 (not 2!), then Caravan adds 2 again. The correct number should be 6. (This could matter with Diadem.)

I placed the +1 Coin token on BoM:

TR + BoM as X should just give the bonus once, because BoM is only placed once. As I said above, TR should play X the 2nd time, not BoM.

j plays a Throne Room.
    j plays a Band of Misfits.
        j gets +1 Coin (from Training)
        j plays a Chapel.
    j plays a Chapel again. [quasi-BoM with the name "Chapel"]
        j gets +1 Coin (from Training)
        j plays a Chapel.

Here we end up with 1 more Coin that we should. (Like above we also end up with 1 more Action than we should, from Champion.)

It seems to be a fundamental mistake in the implementation of BoM that it's not really treated as the chosen card. Of course it can't really be treated 100% as the chosen card in the program, because then it would not be possible to retain the BoM graphic, and even worse, it would not ever revert to BoM. So somehow it has to have a property of being BoM "underneath". But functionally (until it leaves play) it should not be BoM, and that's not happening.

jeebus

Ok, I saw that this was a known bug already! :p

Ingix

Yes, I saw the Champion problem and Stef argued that it would probably involve something with tokens as well. Copy cards are hard (somebody on the Magic Rules Team, ca. 20 years before  8)).

Stef

Jeebus you are right though in the sense that I "use trickery" to get BoM and friends to work.
I should not have to, but my game engine doesn't really allow me to dynamically add abilities to cards on the level it should.

Actually it's a bit of a weird trick. They create an instance of the card they're copying (I call it an animal in a cage). And then whenever they receive any kind of event, they apply it to the animal, see how it responds, and copy that behavior.

The next time I get to rewrite this, I will make sure I have a nice way to add abilities dynamically. Then all this trickery can go in the bin where it belongs. Just having the BoM have those abilities itself would be so much more elegant.