drool66 wrote:Yes - the idea is to remove EA_MANA_SOURCE from lands with no mana abils that I added in 50611a9eb ("Lands with added mana production can be tapped directly, +
Riftstone Portal", 2020-08-24), and also add this same kind of check in count_mana(). The point is to allow them to be autotapped and declare their mana available with an
Urborg, Tomb of Yawgmoth et al. in play. I'm not sure if that will gum up anything else though.
I'd be very wary. Very many things check for EA_MANA_SOURCE for very many reasons. Manastripe display.
Drain Power, and
Power Sink, and lots of cards like
Crackdown Construct that misuse it as a proxy for whether the particular ability was a mana ability. Whether they can be activated while mana is being charged, and whether activation can be responded to. AI valuation. They're all a problem going in the other direction, too, but generally a more mitigable one -
Strip Mine's always been there, for example, so there's almost always an out
after the EA_MANA_SOURCE check to exclude a card.
Any better way to do that other than those two highly specific checks, maybe like "!(cards_data[iid].extra_ability & EA_ACTIVATE)" or something?
Well, you've already seen what trying to special-case everything does to mana cost modification.
EA_ACT_ABILITY won't work either. Consider
Lake of the Dead and
Ruins of Trokair: all abilities are mana abilities, so they should be EA_MANA_SOURCE and not EA_ACT_ABILITY; but you want to delay activating them if you can, so you can see whether you need to use their more expensive ability.
Ghost Town is an example in the other direction - it does have an activated, non-mana ability, but tapping it for mana doesn't make any difference in whether you can bounce it. And cards like
Exotic Orchard or
Meteor Crater are reasonably likely to have more options the longer you put off activating them.
The usual solution to this kind of problem is to ask the object what to do, and if you look at Shandalar's version of can_autotap(), you'll see that's what I settled on. It's ok that there are surely mana sources that don't respond to QUERY_IS_PLAIN_MANA_PRODUCER; it just means the AI doesn't perform as well as it could, and as long as the five original basics and
Mishra's Workshop (and Gem Bazaar, I suppose, if you're completist enough) do respond, you're not any worse off than you were before.