Free multiplayer on-line fantasy card game

Please log in

jbryant3 on 21:08, 20. Jan, 2012
I think this card is underpowered when compared to other zero-cost commons since it also provides a benefit to your opponent. Generally, the other cards only benefit you, which I believe this card should do. This is essentially a variant of Mystic spring...

I do love the concept though.
Mojko on 08:51, 22. Jan, 2012
If you add Prairie to a tower building deck, it will give you maximum effect most of the time. Changing it to effect only the player would be too good. On the other hand I slightly agree that if current form it might need a little bonus. How about few additional resources for the player?

Edit: After looking at the card code, I see that maximum gain is 7 random resources for player and 8 for his opponent, which isn't all that great. 7 random resources =~ 2.3 stock.

So here is my suggestion:

- change to effect only the player
- raise cost to 1R
Coolis on 14:12, 22. Jan, 2012
I've added this card to my tower and mass-replacing deck, but after few battles I realized that it's not worth a slot. I had the same thoughts as you Mojko, if it would affect only you, that would be something
Djinn on 07:21, 25. Jul, 2014
So the part about it only working on 7 out of 8 non-attack cards wasn't fixed?
Mojko on 11:19, 24. Oct, 2014
If you are referring to the fact that played card does not count, then it's not a bug, but rather a feature. The game engine replaces the played card with the next card at the very end, so technically the played card is present in token calculation, card effect and keyword effect processing. Currently, card effects in general have a tendency to omit the played card in their card effect, but on the other hand keyword counting always includes the played card. This is done on the card code level, so there is no general rule enforcing this behavior.

Feel free to propose a change and explain your reasons behind them.
Djinn on 02:43, 5. Jan, 2015
Not sure why I didn't respond before: it's the idea of either removing the "$i != $cardpos and" part or changing "each non-attack card in hand" into "each non-attack card in hand except this card".

I mean, I guess I'm very confused why you don't consider this mismatch a bug, even after reading your post several times; it makes me feel like I've misunderstood something pretty major!
Mojko on 07:45, 5. Jan, 2015
Th reasoning behind this is that many other cards have similar effect (they omit played card position), therefore this card needs to have it as well for the sake of consistency. With other words, if we would change this card, we would need to change many other cards as well.
Djinn on 09:51, 5. Jan, 2015
I searched for "each" in the deck editor, and here is the resulting list of similar for-loop-over-hand cards not consistent with the idea you've given me of "played card not counted towards card effect when the card text says it is";
Barbz's Hideout
Elven Market
Moon Castle

And here's the list I found from that search which are like Prairie:

What is going on? Which cards were you thinking of, if not those using "for each" in the description? Because right now it would be easier to just change Ambassador and Prairie to make it consistent.
Mojko on 10:22, 5. Jan, 2015
Try to search '$i != $cardpos' in the whole card database (cards.xml file).
Djinn on 06:31, 8. Sep, 2018
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.
theultramage on 07:59, 8. Sep, 2018
Djinn has a point. I checked various cards, and it seems the "$i != $t->cardPos()" thing isn't consistent. It was originally added to discard/replace cards to avoid the played card slot, so that one of the new cards wouldn't magically disappear at the end of turn. This is what the vast majority of cards with that exclusion rule do.

There are a few cards that don't. For example, Breeze counts the number of New cards, and will include itself in the count if it's New. Benediction counts the number of Holy cards, and it will count itself since it's Holy. However, Prairie (counts non-attack cards) and Ambassador (counts non-deck cards) exclude themselves from the count in their code, but they don't state so in the description.

So there seems to be no consistent rule that says that "the played card is/is-not considered to be 'in hand' when effects are processed", because there are cards that would violate it either way. It seems to be done on a case-by-case basis, and they're not distinguished in the card description.

Solution A - make it consistent and cripple all the cards that used to count themselves.
Solution B - make it consistent and buff Ambassador/Prairie to include themselves.
Solution C - explicitly state that Ambassador/Prairie are 'except self'.
(may be others?)
Mojko on 00:00, 14. Sep, 2018
Yeah, the game mechanics should probably be tidied up a bit and made more consistent. It's probably a good idea to start with small changes that do not throw a large card set off balance.

Whether the played card should be included in the card effect or not is kind of ambiguous.
Djinn on 06:23, 14. Sep, 2018
Considering cards like Ballistae and Frost unicorn were clearly balanced with self-inclusion in mind, and considering the majority of cards that have the choice do include themselves, as well as considering that the Help makes it clear card draw happens after Token triggers (so Tokens always include played card) which in turn happens after the card effect... it seems like the game is already almost entirely standardized in favor of inclusion.

Of course, if you meant Prairie/Ambassador in particular by that last line, I think it's mixed for Prairie and in favor for Ambassador. Let's take a look at some common use cases:
For Prairie:
1. Tower/Wall building decks or resource accumulation decks; these are already a little weak, and could probably use that +1 resource buff (averaging +2.33 stock from the card instead of +2), however...
2. Tower-kill decks also use the same card, and to much greater effect, so that +0.33 stock might make some less successful decks slightly more successful, but it could also make some already strong decks too strong.

For Ambassador:
1. When Danai present or Sheath your swords is played against you and you randomly draw Ambassador, the fact it doesn't count itself is immediately jarring, and although Danai present is already weak and rarely used, Sheath your swords is quite strong and used in almost every Tower+ deck, and so could use the nerf.
[s]2.[/s] What other use cases? I have never seen anyone else with this in their deck before. I think I tried it once, long ago?

(Also, I wonder why this is taking so much effort from everyone. What is it that makes this seem so obvious to me but not either of you two?)