StrandedKnight wrote: ↑21 May 2026, 14:21
I still don't see why you can't allow the player to choose the sequence of moves even if card draw is involved.
In the example of Nuclear Zone on the South Pole on Hellas, you would first need to determine whether playing Nuclear Zone is a legal move or not. That is already correctly implemented.
Once you choose to play it, you would get the choice of either drawing the card first or placing the tile first.
If you choose the tile placement first, the game engine then determines all legal locations, which may or may not include the South Pole. The move is still undo-able at this point since you haven't drawn any cards yet.
If you choose to draw a card before placing the tile, the move is no longer undo-able. But you can still use the information from the card you drew to determine where to place the tile. The list of legal locations would still be the same.
This would open up for players to make irreversible mistakes, as is the case with all card-drawing moves. But there is no reason it should result in a deadlock.
Nuclear Zone is not the only card that exists in the game.
Sure, you can make one card work. You could make another one work too. You cannot make any arbitrary card work that way. At some point your code becomes unreadable even for yourself. So the only way to do it robustly, maintainable in the future, is to allow the execution of an arbitrary set of effects that the user can choose in any order.
And this is the crux: Mathematically, it is impossible to ensure that such a sequence doesn't fail, especially with effects that might be added to the list along the way, with tile placements, triggers, etc.
Yeah, you might make the code so that Nuclear Zone never fails. And then you're stuck with the next card that does. Or a future card that we haven't even seen yet. THIS is the exact problem.
If like base + prelude (and maybe + colonies) was all there ever was going to be implemented on BGA, guaranteed, never to be changed for sure, you could program it in a way that stays true to the rules regarding card draw, as every single potential interaction between cards could be foreseen and I don't think in this set of expansions there is even one combo that would fail. But we don't have that. The code must be able to work with anything that will be added to the game at a later point. And, again, it is mathematically impossible to do that.