Correct. And this would not be difficult, since it would be exceedingly rare for drawing a card first to end up needing to be undone because the card's remaining effects cannot be carried out. As of now, there is no existing scenario. It seems to have been programmed in as a "just in case".dialectic42 wrote: ↑07 February 2025, 08:29Fantastic points made here.xspuipuke wrote: ↑04 February 2025, 16:46 If I understand correctly, most devs here are freelancers. I've seen the devs answer stuff on these forums so you might be lucky enough for them to elaborate. My example above, however, illustrates how it is NOT feasible, in general, to decide whether a chain of events will succeed or not and that's why undoable stuff like card draw can only happen once it is 100% clear that it can't fail, i.e., if it is the last or second-to-last thing happening.
I wonder if the implementation could do a better job at determining which types of effects could cause a chain to fail and which cannot.
For example, the Olympus Conference and Mars University effects cannot cause an effect chain to fail. These effects could be commonly stacked along with a science card that draws cards.
On the other hand, effects that require the player to pay resources or decrease production could cause a chain to fail.
If we can sort the effects into "failable" and "non-failable" buckets, then the game can allow the player to draw cards when there is only one "failable" condition remaining, and that condition is satisfied.
Cards that decrease production generally should not be a problem, especially since those cards do not generally result in a card draw.
Again though, that's easily fixable. Just require mandatory production decreases to occur before any card draw, since this would be so unlikely to ever matter anyway. I mean, what are the reasons players might want to see their card(s) before other effects? Most of the existing cases involve ocean cards that also can gain cards. By extension, any card that places an ocean on a card-draw spot would fall into the same category, but, again, drawing the card immediately is not going to run into a problem, because generally speaking, there are no further costs to be paid. Example: Ice Asteroid. The first ocean hits the 2-card spot on the Tharsis map. Most of the time I know where the next ocean is going to go, but, maybe one of the 2 cards I draw requires steel that I could only gain from the 2-steel spot at the northern part of the map, so, after seeing my cards, I pivot to that spot instead of the 2-titanium spot at the south. To not allow the player to do this is in blatant violation of the game rules, for no reason.
The interesting South Pole example is a bizarre one that would only occur, as noted earlier in this thread, when a blue card not yet in the game - a promo card that allows a player to pay money to gain energy when an ocean is placed - is in the player's tableau, and the player would need to use that card's effect to gain the energy to pay the energy production decrease. In which case, the game could simply check the intended ocean spot and calculate whether that spot would result in the player having sufficient funds to pay the cost for using that blue card in addition to the 6 MC for the cost of placing a tile on the south pole in the first place.
For the record - there is no science card that requires decreasing energy production, except AI central, which would never result in a tile being placed on the south pole. So what exactly are we even worried about with this example? This situation would not occur as a result of card swap / draw from Mars University and/or Olympus Conference.
So, it means we are specifically worried about the exact situation of:
1) A player places a tile that requires energy reduction on the south pole. There are many cards that do this, including many city cards.
2) The player does not have the energy production to reduce, but intends to use this not-yet-in-the-game promo card called "Neptunian Power Consultants". [ Effect: When an ocean is placed, you may pay 5 MC to increase energy production 1 step (among other things that are not relevant). ]
3) The player gets to place an ocean as a result of placing this city on the south pole and would like to place the ocean on a space that draws a card. There is EXACTLY ONE SUCH SPOT.
Okay, is this not a very easily solvable "problem"?
Two situations are possible:
1) After placing that ocean on that one spot and gaining adjacency bonuses, the player DOES have the 11 Megacredits needed to pay the 6 MC fee for placing a tile on the south pole and the 5 MC for the energy production increase from the card Neptunian Power Consultants, or
2) not.
If option 1, the ocean placement is valid and the card may be drawn,
if option 2, the ocean placement is invalid and the card may not be drawn, and the player must choose a different spot that gives more 2 MC adjacency bonuses to bring the total money to 11 or more MC to be able to complete this action sequence.
If no such ocean spot exists that would bring the money to 11 or more MC, then the entire play is invalid. (And this could be easily determined at the moment the player attempts to play the card on the south pole in the first place. Furthermore, if the rare situation exists where some ocean spots would make this a valid play and other ocean spots would make it invalid, the game could check this before the ocean is placed and gray out the invalid ocean spots.
This is not difficult to do, logically (in pseudocode or just plain English), or in practice with actual code.