I thought I'd discovered a bug, and then when I came here to report it I discovered I had already tried twice! So after re-reading our old posts, I just need to find the right cards.xml to figure out what's going on... and
here it is.
...and now that I've done the search (it is '$i != $t->cardPos()' now), I'm still confused.
The
vast majority of instances of '$i != $t->cardPos()' are in cases where they don't really matter; where the normal condition for the card already excludes itself, or where its effect would be overwritten by card-draw anyway, but the second exclusion is there presumably for processing load reasons (identical behavior, lesser load).
The next set of cards with '$i != $t->cardPos()' are discarding cards where the condition either prevents them from discarding themselves when they're supposed to be Durable, or prevents the player from gaining or losing an advantage from "discarding" a card they're already playing anyway.
Finally there's
Conscript army, which uses it to avoid replacing the card from the constant effect with the card from the randomized effect.
Ambassador and
Prairie are still the only cards in that entire XML file which are using the same thing for the same effect; '$i != $t->cardPos()' to give slightly fewer resources than their description says they would.
So, I still have to suggest about the same solution; either add "except self"||"other" to Prairie's and Ambassador's descriptions or remove the '$i != $t->cardPos()' (& ' && ') part of their code.
(
Heresy,
Pirate bay, and
Dream shift could also each use an "(except self)" or "other" in their descriptions, although at least those effects have the consistency you reference, in that they're just accounting for normal card draw overwriting their position.)
P.S.: Why is the /svn/dev repository behind the /svn/release one?
Edit: ultramage answered in IRC.