I confirm this (in dev), as well as with
Shimmering Grotto/Unknown Shores/Prismatic Lens, which the Homelands lands are based on. This is irritating, because
Prismatic Lens at least
used to work.
----
OK, the main problem here is the lines
- Code: Select all
if (avail >= 2)
choice = choose_a_color_exe(player, "What kind of mana?", 1, 0,
COLOR_TEST_COLORLESS | primary | (avail < 3 ? 0 : secondary));
in homelands_triple_land() and the similar ones in card_prismatic_lens(). The first 0 is the ai_choice parameter, and the AI will pick that choice in this sort of interface function every time, without fail. 0 here means COLOR_COLORLESS, so that's the only color the AI taps these mana sources for.
Probably the most straightforward way to fix this is to publicize choose_mana_all_one_color() from produce_mana.c, and replace the choose_a_color_exe() call with one to that. The card works fine if I copy its function into Shandalar (which is easier for me to debug, but should otherwise be equivalent for the purposes of this bug) and then do that. With the choose_a_color_exe() call untouched, the AI does nothing with two
Wastes and a
Castle Sengir on the bf and a
Lightning Bolt in hand against my 3 life; replace it with choose_mana_all_one_color() and it immediately fries me.
There's a secondary problem, too - at the time the card tries to figure out which colors of mana it can produce (during EVENT_CHANGE_TYPE), it's using stale data for how much mana is available. That's difficult to avoid, since if we wait until after mana is counted, it's too late for this card to declare any mana of its own available. In practice, I'd expect this to make the AI less likely to tap one of these for colored mana during its first action during its first main phase of a turn.
Making a list of other affected cards would be helpful. They'll all have been implemented separately, so will all need to be fixed separately.
(Experimenting with this bug in Shandalar makes me sad. There was a Castle Sengir in the first Magic booster I ever cracked - I'd been playing for a while before that, but only with my friends' cast-off commons and uncommons - and I was excited to see it, since Sengir Vampire was everyone's finisher of choice in black. That only lasted until I actually tried to make it work in a deck, but still, nostalgiaz. And I still can't put it into Shandalar for real, because, like Manalink, its underlying mana engine is still fundamentally incapable of dealing with mana filtering correctly.)