MArcomage

Free multiplayer on-line fantasy card game

Please log in

Djinn on 07:18, 12. Oct, 2018
See turn 31 and 32 of this game for before and after; the common cards in hand were Spring Wood, Elven sorceress, and Shifting mass, at costs of 1 resource, 3 resources, and 9 resources respectively, but Shifting mass was discarded instead of Elven sorceress.

I took a look at the code block displayed here, and I don't see anything particularly wrong with it (since get_Resources() probably doesn't get the card's cost in Stock), so the only guess I have is that the shuffle step happens after the card positions are selected for Aria discard, but before the actual discard, and then the code to correct for when the cards move fails when the card for the new position and old position share a cost for a single resource type? (Gems, in this case.)


(I also checked the other Whirlwind bug, and this is not that.)
Mojko on 18:03, 12. Oct, 2018
The problem is that the Aria keyword skips the played card position.

($i != $t->cardPos())

The shuffle effect places Elven apprentice to the played card position slot so it was ignored when executing Aria keyword. The solution is tricky because we could update played card position pointer, but there may be unwanted side effects.
Djinn on 21:37, 12. Oct, 2018
If that's the case, then a simpler hack would probably work; only skip the played card position if the card played is common.
The only other case I can think of where the exclusion might be a problem is Harpy Hag, but I suspect that is also a case where where the player will not be able to tell the difference.

(Not sure updating the pointer is that bad though; it seems like it would help support more things interacting with Shuffling rather than break things.)
Mojko on 22:53, 12. Oct, 2018
I'm not saying that updating the pointer is bad, I'm just saying that there may be unwanted consequences of that because it's currently treated as a read-only property. It's certainly possible to update it, but a large chunk of the code would need to be retested and potentially changed.

Thanks for reporting this, though. It's an interesting problem :D