Shuffle iT Forum

Dominion => Bug Reports => Interface Issues => Topic started by: Linda B on 03 January 2017, 06:20:48 PM

Title: "Crown" Logic
Post by: Linda B on 03 January 2017, 06:20:48 PM
Logically, if I am out of actions when I play a Crown and the next card is a coin, I should not have had to tell the system "End Actions" to get the Crown to work with the Coin. Thanks if you can eventually correct this.
Title: Re: "Crown" Logic
Post by: LaLight on 03 January 2017, 06:22:06 PM
Quote from: Linda B on 03 January 2017, 06:20:48 PM
Logically, if I am out of actions when I play a Crown and the next card is a coin, I should not have had to tell the system "End Actions" to get the Crown to work with the Coin. Thanks if you can eventually correct this.

Hello! In some cases (+1 Card token for one) you might want to play Crown as an action even when you don\t have any more actions in hand.
Title: Re: "Crown" Logic
Post by: Linda B on 05 January 2017, 01:45:19 AM
Quote from: LaLight on 03 January 2017, 06:22:06 PM
Hello! In some cases (+1 Card token for one) you might want to play Crown as an action even when you don\t have any more actions in hand.
Quite true, but when I play it at the end of my action play and next play a coin, it should not assume that I did not want to Crown the coin. It could offer an option.
Title: Re: "Crown" Logic
Post by: trazoM on 05 January 2017, 12:34:57 PM
Other edge case: you want to lower the cost of Peddlers by 2. I guess you have to play it as a action to do that.
Title: Re: "Crown" Logic
Post by: AdamH on 05 January 2017, 12:52:16 PM
Why are people arguing that the default behavior should be something that could possibly maybe be useful in some edge cases that will never actually happen?

Playing Crown to double a Treasure still lowers the cost of Peddler. If the next card you click is a Treasure card after you clicked Crown (or a series of Crowns) then it should double the treasure.

I can't think of any edge cases to this but even if there are, they should be handled as edge cases instead of making the default interface really confusing.
Title: Re: "Crown" Logic
Post by: LaLight on 05 January 2017, 01:47:09 PM
Quote from: AdamH on 05 January 2017, 12:52:16 PM
Why are people arguing that the default behavior should be something that could possibly maybe be useful in some edge cases that will never actually happen?

Playing Crown to double a Treasure still lowers the cost of Peddler. If the next card you click is a Treasure card after you clicked Crown (or a series of Crowns) then it should double the treasure.

I can't think of any edge cases to this but even if there are, they should be handled as edge cases instead of making the default interface really confusing.

You are right, actually. We will change the logic of it, but right now it's not high on priority list.
Title: Re: "Crown" Logic
Post by: Chris is me on 05 January 2017, 05:13:57 PM
Quote from: trazoM on 05 January 2017, 12:34:57 PM
Other edge case: you want to lower the cost of Peddlers by 2. I guess you have to play it as a action to do that.

You do not, actually. The card isn't played "as an Action" or "as a Treasure" - no matter which phase it is, it counts as an Action card in play for Peddler. The card is always both types, it just takes an Action to play it if you play it in the Action phase.

As far as I can tell, the one edge case is the card token. The interface should at least warn you if you play Crown during the Action phase with no other Actions in hand. You need to be ABLE to do this somehow, and I am having trouble understanding a way to make it the other way. Really it should ask "Action phase" or "Buy phase" in this one edge case.
Title: Re: "Crown" Logic
Post by: Ingix on 05 January 2017, 07:31:53 PM
I strongly disagree with AdamH's notion that the game client should somehow "guess what is intended" as the default behavior. There are so many things that might be considered edge cases in Dominion, that putting shurtcuts that work 99% of the time into the client is jeopardizing the integrity of the game. Because if this is implemented for the Crown, I'm sure that many more such things will be demanded.

Making the client not autmatically do things in many cases that might be edge cases is what the undo feature is for, IMO. That is a great thing to have for the cases here where it may be 'obvious' to humans that the Crown is supposed to be played in the buy phase and not in the action phase.



Title: Re: "Crown" Logic
Post by: Polk5440 on 05 January 2017, 08:39:52 PM
Having to use undo to get your intended outcome because you are misled by the client or can't tell what the client is going to do is bad UI design, not an ideal use of the undo button. The Undo button (assuming it can't be abused) should be only needed for careless play mistakes.

Edit: spelling.
Title: Re: "Crown" Logic
Post by: Stef on 05 January 2017, 08:49:06 PM
We will certainly do something about Crown at some point. Current situation is much too likely to go wrong.
Title: Re: "Crown" Logic
Post by: AdamH on 06 January 2017, 02:57:22 AM
Quote from: Ingix on 05 January 2017, 07:31:53 PM
I strongly disagree with AdamH's notion that the game client should somehow "guess what is intended" as the default behavior. There are so many things that might be considered edge cases in Dominion, that putting shurtcuts that work 99% of the time into the client is jeopardizing the integrity of the game. Because if this is implemented for the Crown, I'm sure that many more such things will be demanded.

I never said this, I don't know where you're getting it from. Let me say what I said before only in different words, maybe that will help you understand.

There are some cases where half of the users think it's better to do it one way, and half think it's better some other way. Obviously you can't make everyone happy, so you make a configurable option where everyone can set it the way they want it. Everyone is happy now!

But what is the default setting for that option? What do you do before you have the time to implement this option because there are more important things to do? I assert that the best thing to do is to have someone (ideally multiple people) completely new to the game try it both ways for a while and do what they say is the most intuitive.

Is this more clear?
Title: Re: "Crown" Logic
Post by: Ingix on 06 January 2017, 07:28:29 AM
What I'm saying is that this is not a case of "how do I best provide an UI for Hamlet that requires as little clicks as possible and that is not confusing" (which I think you also commented on), which is something where it makes sense to discuss edge cases to show why some implementation may or may not work.

This is a case of a player being in his action phase and still having exactly one action card in his hand to play and at least one free game action. Then you want the computer to understand that if this is the case, and if the one action card in his hand is "Crown", it should be treated as "The player has changed to his buy phase and intended the Crown to be played there, not in his action phase" by default and a game option to change that default.

What I am objecting to is that we should not starting going down that path were we need the computer to understand more and more *complicated* situations in order to provide the shortcut for the player to simply press the "End actions" button in this case.
Title: Re: "Crown" Logic
Post by: AdamH on 06 January 2017, 01:00:45 PM
OK I completely agree with you. I just think that there are no edge cases for Crown that can't be solved by "the next card you click should be doubled whether it's an Action or a Treasure"

...I have not gone through every single interaction though, so maybe I'm missing something.

Quote from: Ingix on 06 January 2017, 07:28:29 AM
What I am objecting to is that we should not starting going down that path were we need the computer to understand more and more *complicated* situations in order to provide the shortcut for the player to simply press the "End actions" button in this case.

Why not? The choice here is that either two people write some extra lines of code, or their product is worse. I think the product should be as good as possible.
Title: Re: "Crown" Logic
Post by: Watno on 06 January 2017, 01:30:00 PM
Quote from: AdamH on 06 January 2017, 01:00:45 PM
OK I completely agree with you. I just think that there are no edge cases for Crown that can't be solved by "the next card you click should be doubled whether it's an Action or a Treasure"


the edge case is +card token on Crown. You have to decide before you see what you draw.

(Not disagreeing with the fact that the current way it is handled is not ideal)
Title: Re: "Crown" Logic
Post by: yed on 06 January 2017, 04:56:59 PM
Quote from: Watno on 06 January 2017, 01:30:00 PM
Quote from: AdamH on 06 January 2017, 01:00:45 PM
OK I completely agree with you. I just think that there are no edge cases for Crown that can't be solved by "the next card you click should be doubled whether it's an Action or a Treasure"


the edge case is +card token on Crown. You have to decide before you see what you draw.

(Not disagreeing with the fact that the current way it is handled is not ideal)

I agree with Adam, that if there is no +card token on Crown, the interface could "transfer" the crown action to the buy phase (it would need to increase the action counter).
Title: Re: "Crown" Logic
Post by: Witherweaver on 06 January 2017, 05:05:25 PM
Quote from: yed on 06 January 2017, 04:56:59 PM
Quote from: Watno on 06 January 2017, 01:30:00 PM
Quote from: AdamH on 06 January 2017, 01:00:45 PM
OK I completely agree with you. I just think that there are no edge cases for Crown that can't be solved by "the next card you click should be doubled whether it's an Action or a Treasure"


the edge case is +card token on Crown. You have to decide before you see what you draw.

(Not disagreeing with the fact that the current way it is handled is not ideal)

I agree with Adam, that if there is no +card token on Crown, the interface could "transfer" the crown action to the buy phase (it would need to increase the action counter).

Such things are potentially problematic, though.  Imagine this discussion before Adventures (I mean, if Empires was out and Adventures was not).  We'd all just say that the interface should move you to Buy phase.  Then with +Card token, the developer has to keep this interaction in mind and go back and change the behavior of this specific card (Crown), and may not realize to do so.

Though I think I'd agree, these 'shortcuts' make the interface better.  But form a maintenance point of view, new Cards could introduce unseen bugs.
Title: Re: "Crown" Logic
Post by: Polk5440 on 06 January 2017, 06:49:47 PM
I have mentioned this in another thread earlier in the beta, but I think this problem with Crown highlights an additional problem that it's not always clear when you are in the Action phase and when you are in the Buy phase and when you are in the Cleanup phase. This can be solved with some modifications to the UI.

This problem with Crown is also slightly at odds with the very careful implementation of trashing, discarding, etc., so it's not clear why there shouldn't be an extra confirmation to play Crown as an Action when there are no other actions to double.

(I agree with Adam that my preferred method to solving the Crown issue is to double the treasure if it's the next card played except in the token edge case.)
Title: Re: "Crown" Logic
Post by: AdamH on 06 January 2017, 10:07:35 PM
Quote from: Witherweaver on 06 January 2017, 05:05:25 PM
Imagine this discussion before Adventures (I mean, if Empires was out and Adventures was not).  We'd all just say that the interface should move you to Buy phase.  Then with +Card token, the developer has to keep this interaction in mind and go back and change the behavior of this specific card (Crown), and may not realize to do so.

Though I think I'd agree, these 'shortcuts' make the interface better.  But form a maintenance point of view, new Cards could introduce unseen bugs.

This same issue happened with Peddler in the kingdom and if you had no treasures in hand, but you had Actions that you didn't want to play. At the time, the "Play All Treasures" button doubled as the "End Actions" button so you needed a way to tell the client that you were ready to move to the Buy Phase so it could reduce the cost of Peddler for you.

There was a special case written in the code that put up a button that said "buy phase" in Peddler games. It solved the problem. When future expansions were released, the overall interface might have changed to accommodate newer cards, but that was a problem for that time.

My point is, the UI of the product is best when you just recognize that the +1 Card token being on Crown means you need to interrupt the user and ask them if they're playing their Crown as an Action or a Treasure if they have no more Actions in hand. If something else comes along, yeah they'll have to update it but like, it seems really silly to make the product worse to account for edge cases that come from future cards that may never exist.

Otherwise you can just tell what the user wanted to do by looking at the next non-Crown card they click on with no issues. I struggle to see any argument that this isn't the best interface.
Title: Re: "Crown" Logic
Post by: Witherweaver on 06 January 2017, 11:57:59 PM
Yeah, I agree with you.
Title: Re: "Crown" Logic
Post by: Ingix on 08 January 2017, 09:49:49 PM
Quote from: AdamH on 06 January 2017, 01:00:45 PM
OK I completely agree with you. I just think that there are no edge cases for Crown that can't be solved by "the next card you click should be doubled whether it's an Action or a Treasure"

...I have not gone through every single interaction though, so maybe I'm missing something.

Quote from: Ingix on 06 January 2017, 07:28:29 AM
What I am objecting to is that we should not starting going down that path were we need the computer to understand more and more *complicated* situations in order to provide the shortcut for the player to simply press the "End actions" button in this case.

Why not? The choice here is that either two people write some extra lines of code, or their product is worse. I think the product should be as good as possible.

In Principle:
Sometimes a consistent "game flow" that people can learn and apply is better than little shortcuts that are meant to make the game flow easier in some cases but in the end destroy a players 'confidence' in understanding the game flow when he is confronted with something that doesn't fit his mental model of how the game flow should work (like switching from Action phase to Buy phase after clicking on an Action card (Crown)).

In the current situation:
No code change is "free", it will always replace something else. I think there are still lots of other things that should take precedence.
Title: Re: "Crown" Logic
Post by: Donald X. on 09 January 2017, 12:21:47 AM
Quote from: AdamH on 06 January 2017, 10:07:35 PM
Otherwise you can just tell what the user wanted to do by looking at the next non-Crown card they click on with no issues. I struggle to see any argument that this isn't the best interface.
That sounds bad to me. Just, unlikely to handle everything.

I playtested a card for Adventures that was a duration attack that made other players discard down to 3 at the start of their buy phase. If the program figured out what phase it was after seeing what you Crowned, and it was your Buy phase, it would then need to make you pick the Crown and other card back up so you could discard.

If you try to play Crown in your main phase with no Actions in hand, there could be an "are you sure." And there has to be a way to jump to the Buy phase, like that Peddler example. I think though that we have to know what phase it is before arriving at the middle of resolving Crown.
Title: Re: "Crown" Logic
Post by: LastFootnote on 09 January 2017, 05:35:32 AM
I'll cast my vote for an "are you sure" warning. Retroactively moving you to your Buy phase in the middle of resolving a card is asking for trouble.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 01:46:34 PM
Quote from: Donald X. on 09 January 2017, 12:21:47 AM
Quote from: AdamH on 06 January 2017, 10:07:35 PM
Otherwise you can just tell what the user wanted to do by looking at the next non-Crown card they click on with no issues. I struggle to see any argument that this isn't the best interface.
That sounds bad to me. Just, unlikely to handle everything.

But, but... it does handle everything. Except for one thing, where you prompt the user instead.

There is one interface that works for all existing cards and is the most intuitive thing for new players (it's actually the most intuitive thing for all players). It requires one special-case for when there's a +Card token on the Crown pile, but other than that it works for every Dominion card that's currently published.

Then there's another interface that requires an "are you sure?" prompt that is going to be super-confusing for new players (actually it will be confusing for everyone who sees it for the first time). It's there to handle an edge case that isn't there for 99% of cases and can easily be special-cased in the code. And the justification for making the interface worse by not special-casing it is that maybe more cards will be published to make it matter?

This is very clearly not the best solution to me. Quality of the current product and intuitive controls are the most important thing: there is a solution that works for all of the published cards and can easily be special-cased for when it needs to matter (and I can think of lots of ways where it's easy to extend well-written code for this to account for future cards). I just don't see why we aren't using it.

Better than the "are you sure?" button would be a prompt that comes up once you click on Crown that says "play as Action" or "play as Treasure", then the user clicks that -- this lines up more directly with what appears on the text of the card, and also more gracefully handles the situation where you have Actions in hand but you don't want to play them. Then, you're going to want the software to try and figure out when there is no choice (like if we found it with a Herald or Venture or something) and not prompt the user. OK, this is already messier code than my suggestion...

But then people are going to ask why they are pressing a button when they're giving that information anyways by clicking the next card they want to play. And now we're back to what I've suggested the interface should be, which means we only see the prompt when the +1 Card token is on the Crown pile.
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 03:26:49 PM
Isn't Enchantress a counterexample too?

If my opponent played Enchantress and I have Crown + 4 Treasure in Hand, and I play the Crown, it can't assume it's my buy phase, and it can't deduce from what I play next.
Title: Re: "Crown" Logic
Post by: Donald X. on 09 January 2017, 03:41:28 PM
Quote from: AdamH on 09 January 2017, 01:46:34 PM
But, but... it does handle everything. Except for one thing, where you prompt the user instead.
You are not going to convince me here.

If you are willing to have special-cases that ignore the rules for one situation, then you will be willing to have those for multiple situations. If you have them for multiple situations then you will get weird bugs that you could have trivially avoided by not ever ignoring the rules.

The idea of starting to resolve a card without knowing what phase it is is Bad.

Note that this is not the case with e.g. playing Counterfeit and having isotropic realize "oh you want it to be your Buy phase now." That goes, make it your Buy phase, then play Counterfeit. The Counterfeit is played full-on in your Buy phase.

When you have a game that only has 10 cards set in stone and is never getting any more, you have the freedom to write code that is very specific to how the cards work, that would mess up if they were different. We have a game with lots of cards and the ability of some cards to change what other cards do. Ignoring the rules, trying to spot the problem interactions that result and then special-casing them is awful. Having the philosophy that that's okay sets you up to have a bug-riddled program. I believe this strongly! Argument by authority, many years as a computer programmer.
Title: Re: "Crown" Logic
Post by: Polk5440 on 09 January 2017, 04:39:57 PM
Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.

This is what I was trying to get across. Thanks for saying it better.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 06:31:33 PM
Quote from: Witherweaver on 09 January 2017, 03:26:49 PM
Isn't Enchantress a counterexample too?

If my opponent played Enchantress and I have Crown + 4 Treasure in Hand, and I play the Crown, it can't assume it's my buy phase, and it can't deduce from what I play next.

In this case, even if we're in the Buy phase, we still get +1 Card and +1 Action when we play our Crown. I assume it's strictly better to play it in your Action phase because then you get the option of playing Action cards afterward should you draw one.

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
Quote from: AdamH on 09 January 2017, 01:46:34 PM
But, but... it does handle everything. Except for one thing, where you prompt the user instead.
You are not going to convince me here.

If you are willing to have special-cases that ignore the rules for one situation, then you will be willing to have those for multiple situations. If you have them for multiple situations then you will get weird bugs that you could have trivially avoided by not ever ignoring the rules.

The idea of starting to resolve a card without knowing what phase it is is Bad.

[...]

I believe this strongly! Argument by authority, many years as a computer programmer.

You are not going to convince me here, either. I have spent several years as a computer programmer as well. Many times I've done something that was slightly inconvenient and was great software design only to have my customers come back and tell me they wished it was a different way. They didn't care about the design or rules I followed, they cared what their product did and that it made sense to use.

I am not suggesting that they break this rule you just made up for every single card where they can. I'm suggesting that in this one case, we can come up with an exhaustive list of all of the places where it matters, easily detect when that is the case, and for the other 99+% of cases, it doesn't matter that we break this rule. The result is a much better user interface and a better product.

What's going on here is not "the idea of starting to resolve a card without knowing what phase you're in" -- it's the user saying they want to play a Crown, then with the next click telling you how they want to do so (which will tell you what phase they wanted). In all of the cases where this is OK (everything except for +1 Card token on Crown pile) we don't have to actually resolve the card until that second click.

And I am not suggesting that the gears and levers behind the screen have to even start actually resolving the card until that happens. Yeah maybe the first Crown you played will appear in the play area after the first click so things are clear, but that's about it. Will this make everyone feel better?
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 06:37:03 PM
Quote from: AdamH on 09 January 2017, 06:31:33 PM
Quote from: Witherweaver on 09 January 2017, 03:26:49 PM
Isn't Enchantress a counterexample too?

If my opponent played Enchantress and I have Crown + 4 Treasure in Hand, and I play the Crown, it can't assume it's my buy phase, and it can't deduce from what I play next.

In this case, even if we're in the Buy phase, we still get +1 Card and +1 Action when we play our Crown. I assume it's strictly better to play it in your Action phase because then you get the option of playing Action cards afterward should you draw one.

Of course, but my point is that if you play it in your Buy phase, you can't play an Action if you draw it.  It is strictly better, yes, but I'm not so sure we should have our implementation optimizing our choices.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 06:41:36 PM
Well if it was me, I wouldn't want the UI bothering me, asking me if I wanted to make a suboptimal choice. But this kind of thing could easily be added to the list of exceptions (doubling its size!) if that's what was determined to be correct.

But that's a design decision I don't feel like I'm qualified to speak towards. Unlike the rest of the stuff I've said in this thread, which I feel strongly enough about to stand behind.
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 06:44:14 PM
And actually, the more I think about it, the current implementation is natural.

You have an Action in your hand, regardless of whether its art and border look treasurelike or not.  As long as I have the choice to do things in my Action phase, I should explicitly tell the interface to move to my Buy phase somehow. 

Before Peddler, Tokens, Enchantress, etc., if you start a turn with a hand of Throne Room, Copperx4, the same argument would say that the game should assume it's your Buy phase.
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 06:47:27 PM
Quote from: AdamH on 09 January 2017, 06:41:36 PM
Well if it was me, I wouldn't want the UI bothering me, asking me if I wanted to make a suboptimal choice. But this kind of thing could easily be added to the list of exceptions (doubling its size!) if that's what was determined to be correct.

But that's a design decision I don't feel like I'm qualified to speak towards. Unlike the rest of the stuff I've said in this thread, which I feel strongly enough about to stand behind.

I feel like that's backwards.  The choice is simply inherent in the rules of the game: you have to make it.  Not having the game make decisions for you (unless you toggle a configuration to always make certain decisions) makes sense to me as a design principle.
Title: Re: "Crown" Logic
Post by: Donald X. on 09 January 2017, 06:51:12 PM
Quote from: AdamH on 09 January 2017, 06:31:33 PMYou are not going to convince me here, either.
Well I am happy to stop trying!

Quote from: AdamH on 09 January 2017, 06:31:33 PMI have spent several years as a computer programmer as well.
I am pretty sure I've lapped you.

Quote from: AdamH on 09 January 2017, 06:31:33 PMI am not suggesting that they break this rule you just made up for every single card where they can.
I do not see a rule I "just made up."

If you are willing to skimp on correct functionality in favor of interface here, you will be willing to do it elsewhere too, and it will add up to bugs. The move is to never do it, even if one case is especially tempting.

Again it's a game of interacting rules on cards, and some of the cards even change what cards do. You are never catching everything by looking at the card list. And if everything has correct functionality, you don't have to.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 06:54:09 PM
Quote from: Witherweaver on 09 January 2017, 06:44:14 PM
And actually, the more I think about it, the current implementation is natural.

You have an Action in your hand, regardless of whether its art and border look treasurelike or not.  As long as I have the choice to do things in my Action phase, I should explicitly tell the interface to move to my Buy phase somehow. 

By playing Crown and then clicking on a treasure, you're explicitly telling the interface that you want to move to your Buy phase.

Quote from: Witherweaver on 09 January 2017, 06:44:14 PM
Before Peddler, Tokens, Enchantress, etc., if you start a turn with a hand of Throne Room, Copperx4, the same argument would say that the game should assume it's your Buy phase.

I have no idea what argument you're talking about, this seems really strange to me and I don't think it holds.

Is the problem that you want the option to play your Throne Room and nothing else, or to not play the Throne Room? You still get that because Crown is optional for if you play something else. There is currently a passive prompt that says "don't Crown" or whatever that you can click regardless of what phase you're in. You can click Crown and then that button for the exact same effect regardless of what phase you're in.

...hmm, except that you have an Action less which could matter for Diadem. Umm, OK then that gets added to the list of exceptions. Still pretty easy to detect. Nice catch!

Quote from: Witherweaver on 09 January 2017, 06:47:27 PM
I feel like that's backwards.  The choice is simply inherent in the rules of the game: you have to make it.  Not having the game make decisions for you (unless you toggle a configuration to always make certain decisions) makes sense to me as a design principle.

I play a Remake, I have 4 Coppers in hand. The game auto-trashes two Coppers for me. I thought making trivial decisions for the user was a feature of this product?

In any case, I don't have an opinion on this. I care what the interface is like and that it makes sense. In the case of Crown's interface, it's very clear to me what it should look like from the user's perspective. It's also very clear to me that underneath the hood it's possible for that to happen. Therefore, that's the way it should be.
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 07:01:28 PM
Playing Remake with 4 Coppers and not causing you to select them is not making any decisions.  There are no decisions to be made: every outcome is equivalent.

I draw Crown, Copper x4.  My opponent played Enchantress.  The following two sitations are different.

1) I play Crown in my Action phase.
2) I play Crown in my Buy phase.

In the former, I can play an Action if I draw it.  In the latter, I cannot.  It is a choice I have to make, and the outcomes are different.  (Even if one is better than the other.)  If you choose the second case, you don't have the option to play your Action, so the interface shouldn't tell you that you do.

Quote...hmm, except that you have an Action less which could matter for Diadem. Umm, OK then that gets added to the list of exceptions. Still pretty easy to detect. Nice catch!

Oh, right, this matters too.

But you see we've already found multiple exceptions that we didn't think of in quite a trivial interaction.  These types of things are going to add up, when you think about all cards that could have such a 'special case' interface choice like this. The more cards that are added to the game, the more potential there is for lots of bugs to come up.
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 07:03:52 PM
I think, also, it would not be hard to create a Card where the choice in the Enchantress, Crown, Copper x4 case matters.  Just an Action/Reaction that triggers on "When you draw this", and does something different in your Action and Buy phases.  Then the choice needs to be made before you play Crown.

Edit: I mean yes, you can detect and except such a case, but I'm definitely seeing how it is not a good design choice, especially from a code maintenance standpoint.  (I'm also a developer, though not nearly as experienced as a lot of others here.)
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 07:05:42 PM
Quote from: Donald X. on 09 January 2017, 06:51:12 PM
Quote from: AdamH on 09 January 2017, 06:31:33 PMI have spent several years as a computer programmer as well.
I am pretty sure I've lapped you.

I don't see why this matters. I think you were kidding anyways so I'm just going to drop this.

Quote from: Donald X. on 09 January 2017, 06:51:12 PM
Quote from: AdamH on 09 January 2017, 06:31:33 PMI am not suggesting that they break this rule you just made up for every single card where they can.
I do not see a rule I "just made up."

I'm referring to this:

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.



Quote from: Donald X. on 09 January 2017, 06:51:12 PM
If you are willing to skimp on correct functionality in favor of interface here, you will be willing to do it elsewhere too, and it will add up to bugs. The move is to never do it, even if one case is especially tempting.

I never said I was skimping on correct functionality, and even if I was, I never said I would be willing to do it anywhere else. I agree with you that skimping on correct functionality is normally bad, even when it's tempting. But then sometimes the user tells you to do it anyways and then listening to them can sometimes be right.

But that is not the case here anyways so I don't think it matters.

Quote from: Donald X. on 09 January 2017, 06:51:12 PM
Again it's a game of interacting rules on cards, and some of the cards even change what cards do. You are never catching everything by looking at the card list. And if everything has correct functionality, you don't have to.

That would be really nice, but then we get this interface that's just terrible to actually use so nobody would want to use it. The interface can be improved without even causing issues with functionality by doing what I've suggested, so I feel like that should be done. Maybe fixing lots of other things first is cool but from a user's perspective, this seems important to do.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 07:07:03 PM
Quote from: Witherweaver on 09 January 2017, 07:01:28 PM
But you see we've already found multiple exceptions that we didn't think of in quite a trivial interaction.  These types of things are going to add up, when you think about all cards that could have such a 'special case' interface choice like this. The more cards that are added to the game, the more potential there is for lots of bugs to come up.

So we test it, find the bugs, then fix them. After all that, there's a better product. We did it!
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 07:09:27 PM
Quote from: AdamH on 09 January 2017, 07:07:03 PM
Quote from: Witherweaver on 09 January 2017, 07:01:28 PM
But you see we've already found multiple exceptions that we didn't think of in quite a trivial interaction.  These types of things are going to add up, when you think about all cards that could have such a 'special case' interface choice like this. The more cards that are added to the game, the more potential there is for lots of bugs to come up.

So we test it, find the bugs, then fix them. After all that, there's a better product. We did it!

Or you could not find all the bugs (come on, if you're a developer you know you can't always test every case), and release buggy software, and then have to go fix the bugs instead of developing new features.  Whereas the other choice was to not follow a design principle that introduced bugs when it never needed to.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 07:20:22 PM
Quote from: Witherweaver on 09 January 2017, 07:09:27 PM
Or you could not find all the bugs (come on, if you're a developer you know you can't always test every case), and release buggy software, and then have to go fix the bugs instead of developing new features.  Whereas the other choice was to not follow a design principle that introduced bugs when it never needed to.

I really wish it actually worked this way. Unfortunately, most of my career has been spent implementing changes the user asked for even though it makes the design less elegant.

It can't possibly be the best interface that when I have a Crown and no Actions in hand, then I click on Crown then a Treasure card, that I've played Crown as an Action and not doubled my Treasure unless I clicked another button that is located all the way on the right side of the screen. This is the most common scenario and the intuitive inputs provide an extremely incorrect answer. I understand the fix isn't super-simple, but if the answer back to the users is "sorry you'll have to deal with it", they will not be happy.

I realize that from a strict technical standpoint, making them click the button is better because it's clearer to the software what's happening, but that is not the best solution to this issue. The issue involves people an intuition which is subjective and awful.
Title: Re: "Crown" Logic
Post by: Donald X. on 09 January 2017, 08:48:34 PM
Quote from: AdamH on 09 January 2017, 07:05:42 PM
I'm referring to this:

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.
It has always been the case in Dominion that you know what phase it is when resolving a card. That is not some rule I just made up.

Quote from: AdamH on 09 January 2017, 07:05:42 PMThat would be really nice, but then we get this interface that's just terrible to actually use so nobody would want to use it.
For sure Crown forcing you to deal with its quirks is not going to bring the rest of the game's interface down with it. If you can't stand it, un-familiar it and you'll see it less often.
Title: Re: "Crown" Logic
Post by: AdamH on 09 January 2017, 09:06:38 PM
Quote from: Donald X. on 09 January 2017, 08:48:34 PM
Quote from: AdamH on 09 January 2017, 07:05:42 PM
I'm referring to this:

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.
It has always been the case in Dominion that you know what phase it is when resolving a card. That is not some rule I just made up.

So I think our disagreement here is in the definition of "resolving a card" -- and that there is no disagreement other than that.

When I click on Crown the first time, before I've decided which card I'm going to Crown, I have not started resolving the card yet (unless there's a +1 Card token on Crown). It doesn't start resolving until the second card the user clicks on.

I'm pretty sure we agree on everything else.
Title: Re: "Crown" Logic
Post by: Witherweaver on 09 January 2017, 09:30:44 PM
Quote from: AdamH on 09 January 2017, 07:20:22 PM
Quote from: Witherweaver on 09 January 2017, 07:09:27 PM
Or you could not find all the bugs (come on, if you're a developer you know you can't always test every case), and release buggy software, and then have to go fix the bugs instead of developing new features.  Whereas the other choice was to not follow a design principle that introduced bugs when it never needed to.

I really wish it actually worked this way. Unfortunately, most of my career has been spent implementing changes the user asked for even though it makes the design less elegant.

It can't possibly be the best interface that when I have a Crown and no Actions in hand, then I click on Crown then a Treasure card, that I've played Crown as an Action and not doubled my Treasure unless I clicked another button that is located all the way on the right side of the screen. This is the most common scenario and the intuitive inputs provide an extremely incorrect answer. I understand the fix isn't super-simple, but if the answer back to the users is "sorry you'll have to deal with it", they will not be happy.

I realize that from a strict technical standpoint, making them click the button is better because it's clearer to the software what's happening, but that is not the best solution to this issue. The issue involves people an intuition which is subjective and awful.

I see your point, but as I've thought more about it I'm settling more and more on disagreeing.  I think it's the proper interface to explicitly make the user move to Buy Phase as long as there are choices to be made in the Action  Phase.

And really, not doing so would likely contribute to longer-term misunderstanding of the of the game rules and how a card like Crown functions (i.e., by not making it clear which phase your in).

However, I'm sure there can be improvements here.  Maybe making the 'End Actions' (actually I would prefer 'Move to Buy Phase') button more noticeable or placed in a more convenient location.
Title: Re: "Crown" Logic
Post by: Donald X. on 09 January 2017, 09:40:21 PM
Quote from: AdamH on 09 January 2017, 09:06:38 PM
So I think our disagreement here is in the definition of "resolving a card" -- and that there is no disagreement other than that.

When I click on Crown the first time, before I've decided which card I'm going to Crown, I have not started resolving the card yet (unless there's a +1 Card token on Crown). It doesn't start resolving until the second card the user clicks on.
It is the resolution of Crown that causes you to pick a card to play twice with it. So you do not pick that card until you start resolving Crown. I get to pick that definition and I mean that's all behind us.

This is unlike in Magic, where you pick targets on announcement.
Title: Re: "Crown" Logic
Post by: dscarpac on 09 January 2017, 10:19:30 PM
Another solution here is to have some extremely explicit text (a button or something) on the screen at all times that tells you what phase you are in ("Action Phase", etc.), and you can manually click on this button or drag it or click an arrow to explicitly tell the program when you want to go to the next phase. It can roll to the next phase automatically if you run out of Actions (and no Royal Carriage, COTR, etc), but you would need to click this to manually move on, like in our Crown examples (this would eliminate the potentially confusing End Actions button).

Maybe even change the color of the background or something else that is in your face at all times to make it so, so obvious which phase you are in. I mean, if the whole background is Yellow during the Buy Phase when it is White in the Action phase, users will absolutely know which phase they are in, and certainly make fewer Crown mistakes, and the integrity of the game is not jeapardized.
Title: Re: "Crown" Logic
Post by: AdamH on 10 January 2017, 03:34:28 AM
People actually seem to think that the current interface is the best?

The voice of people who are new to the game and new to the online client is the one that should be listened to. And whatever they say they want, there should be a good reason why not if they can't have it. "The code is harder to maintain and harder to write" is not a good enough reason.

Anyways, it's definitely possible to write it the way I've suggested, though it's a pretty low priority. The discussion here has gone in all sorts of directions so I'm not going to continue it anymore.
Title: Re: "Crown" Logic
Post by: randomjoyz on 10 January 2017, 06:46:43 AM
Quote from: Polk5440 on 05 January 2017, 08:39:52 PM
Having to use undo to get your intended outcome because you are misled by the client or can't tell what the client is going to do is bad UI design, not an ideal use of the undo button. The Undo button (assuming it can't be abused) should be only needed for careless play mistakes.

Edit: spelling.
But miss playing a crown when you have done it once before is a careless play mistake, and that first time is learning how to use the client. But honestly, it is pretty intuitive if you are paying attention, when you play an action during your action phase, it's going to be played like an action, and further, it should be played as an action.

With this being said, I am not condemning anyone for making silly careless mistakes. I have made this mistake a few times myself, I'm human after all.
Title: Re: "Crown" Logic
Post by: randomjoyz on 10 January 2017, 07:13:13 AM
Quote from: AdamH on 10 January 2017, 03:34:28 AM
People actually seem to think that the current interface is the best?

The voice of people who are new to the game and new to the online client is the one that should be listened to. And whatever they say they want, there should be a good reason why not if they can't have it. "The code is harder to maintain and harder to write" is not a good enough reason.

Anyways, it's definitely possible to write it the way I've suggested, though it's a pretty low priority. The discussion here has gone in all sorts of directions so I'm not going to continue it anymore.
What? They should listen to the people who don't necessarily understand how the client works yet? There is a good reason not to make crown automatically work in the way the way you say it should. The reason is that when you play a crown during the action phase, you are telling the game you want to play the card like an action, so that is what it should do. I noticed in another post you mentioned remake and a hand full of copper. I want to point out that this is a very different situation, when you play a remake with a hand full of copper, the only possible outcome is that 2 copper will get trashed(you can not decide you only want to remake one of the copper, the card says "do this twice" and not "you may do this twice"), so it makes sense for the game to do that automatically.

They should not make it so that crown automatically plays as a treasure when you have actions left, regardless of it being a smart move or not, you should be able to make it if that is what you chose, even if there is no edge reason to do so.

They should not make it ask you if you are sure you want to do so and so, this would be annoying to the player who is paying attention and playing the cards carefully and deliberately.

I couldn't care less if they want to make it clearer what phase you are in, but this is unnecessary as anyone paying attention can easily tell what phase they are in. The real solution, pay attention, and if you make a mistake, undo. (demanding something be changed because you made a mistake is absurd)

Oh and, another argument I have seen you make a few times is "It doesn't matter if it is elegant/logical/right if it's what the people want", well people are arguing with you and I don't see that many agreeing with you. And further it does matter if the game is executed correctly, this a game where you make decisions based on carefully written statements on the cards. If we are not following those statements literally then what the hell are we doing?


My argument stems from 2 indisputable facts and 1 opinion.

fact1: If you tell the client to do something, the client should do that something rather than something else.

fact2: If it is legally possible to play a hand in a certain way, then you should be able to do that in the client.

opinion: if you play your cards carefully and deliberately, the client should not second guess your decisions.
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 03:35:24 PM
Quote from: AdamH on 10 January 2017, 03:34:28 AM
People actually seem to think that the current interface is the best?
I don't imagine it is. For sure it should not be possible to click on Crown in your Action phase and find out you blew it and were supposed to click to end the phase first.

Quote from: AdamH on 10 January 2017, 03:34:28 AM"The code is harder to maintain and harder to write" is not a good enough reason.
That is not the reason! Bad code is easier to write, not harder!

Donald X.'s number one rule of programming, for all of you eager to learn it, is, "say what you mean." When you don't, you get bugs. These people who need to be protected from a scary "are you sure" button, they also need to be protected from bugs. The ability to fix bugs does not sufficiently compensate for having them in the first place.

Quote from: AdamH on 10 January 2017, 03:34:28 AM
Anyways, it's definitely possible to write it the way I've suggested, though it's a pretty low priority.
I think it's great that so many people, including you, are suggesting fixes to the UI that they would like, including for Crown. This particular fix you want, I would not get too attached to it.
Title: Re: "Crown" Logic
Post by: AdamH on 10 January 2017, 03:52:16 PM
I made the mistake of coming back to read this after I said I wouldn't. Now I'm going to make another mistake by replying. Woooo!

Quote from: randomjoyz on 10 January 2017, 07:13:13 AM
What? They should listen to the people who don't necessarily understand how the client works yet?

Yes, this is exactly what I'm saying. And it's a really important thing that is obviously not going to be popular among many people who take the time to post here.

Anyone who plays with this client is going to get used to it, regardless of how bad the interface is. I've been there, I got used to the Goko interface (#BURN). Anyone who does this was going to play the game regardless, so yeah there is some value in making them happy but it doesn't *really* matter all that much in terms of the success of Dominion as an online game and the success of this particular client.

On the other hand, there are going to be a lot of people who get a link and try this thing out and could potentially be really turned off by the first 10 minutes of using this client. Every single person who could possibly be a user of this thing will go through that test, so by that reason alone it's the most important thing and those people are the target audience for pretty much all of the UI decisions. But on top of that, Dominion online needs to have an interface that's welcoming for new players and even viewers who are unfamiliar with the game to expand its audience if it wants a reasonable chance of succeeding as an online game.

So yeah, new players who don't know how the client and/or game works are the most important audience for UI decisions.

Quote from: randomjoyz on 10 January 2017, 07:13:13 AM
My argument stems from 2 indisputable facts and 1 opinion.

fact1: If you tell the client to do something, the client should do that something rather than something else.

fact2: If it is legally possible to play a hand in a certain way, then you should be able to do that in the client.

opinion: if you play your cards carefully and deliberately, the client should not second guess your decisions.

I don't disagree with any of this, and nothing I've suggested violates any of this. All I want is for the most common case to make sense in terms of user inputs. This is possible to do with Crown as I've explained above many times and the only arguments I've been given for why this should not be done have been the following:

1. It would be harder to implement/maintain the code for this.
2. I would prefer the implementation the way it is.

As for 1, well that's just not a good reason to make a worse product. As for 2, the answer is to have an option to make the UI different if people just can't get used to it.


Quote from: Donald X. on 10 January 2017, 03:35:24 PM
Quote from: AdamH on 10 January 2017, 03:34:28 AM
Anyways, it's definitely possible to write it the way I've suggested, though it's a pretty low priority.
I think it's great that so many people, including you, are suggesting fixes to the UI that they would like, including for Crown. This particular fix you want, I would not get too attached to it.

I fully realize that the devs of this product will probably not listen to me. Even so, I think I'm right about this and I think the my way is the best way. By bringing it up here and having people people post their counterarguments, some of the time I see a problem with my argument and then I back off (maybe there is some reason why it has to be the way it is, as unfortunate as that would be). That didn't happen here.

So yeah I know they probably won't take my advice even though I think I'm right. But I have this thing where if they don't take my advice, and the reason for that is possibly because I didn't defend my position properly, then I'm not OK with that. It's why I'll soon be submitting my sixth audition video for Survivor when they haven't called me back for the last five, because I'm not OK with me not being cast on the show and the reason for that being because I didn't try my hardest to get on.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 04:04:04 PM
For the record, I'm not saying harder to implement, as much as not correct to implement. 
Title: Re: "Crown" Logic
Post by: randomjoyz on 10 January 2017, 04:13:07 PM
ok adam, so let me try to understand what you think should happen.


Situation: hand (crown, copper, copper, copper,copper) your turn starts, you click crown(click1), you click copper(click2), you now have $1

In this situation, what are you suggesting happens differently before or after any click#?
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 04:37:51 PM
Quote from: Donald X. on 10 January 2017, 03:35:24 PM
Quote from: AdamH on 10 January 2017, 03:34:28 AM
People actually seem to think that the current interface is the best?
I don't imagine it is. For sure it should not be possible to click on Crown in your Action phase and find out you blew it and were supposed to click to end the phase first.

So how do you think it should function?
Title: Re: "Crown" Logic
Post by: AdamH on 10 January 2017, 04:39:46 PM
Quote from: randomjoyz on 10 January 2017, 04:13:07 PM
ok adam, so let me try to understand what you think should happen.


Situation: hand (crown, copper, copper, copper,copper) your turn starts, you click crown(click1), you click copper(click2), you now have $1

In this situation, what are you suggesting happens differently before or after any click#?

umm, I think in that case you should have $2 because Crown doubled a Copper.

I think I know where you're going with this. Please forgive me if I'm wrong. I think you're going to say next "what if I wanted to play Crown as an Action, Crowning nothing, then just play the Copper? This is a legal thing I can do so what are the inputs?"

My answer to that would be: you click on Crown, then that button comes up that says "Crown nothing" (because that's an option regardless of what phase you're in) -- if you click that button and there's an option for which phase you wanted to play that Crown in (which there is in this case), another prompt comes up which asks you if you wanted to play that Crown as an Action or as a Treasure while doing nothing with it.

All legal plays are possible with an interface that allows you to just click the card you want to Crown after clicking Crown(s) and having that determine what phase you wanted. If there is a +1 Card token on Crown then that prompt has to come up earlier but otherwise this is what it looks like. Or maybe there's another way to do it that works better with the existing code, I dunno, this is just one possibility.

The point is that the most common thing people want to do has the most intuitive interface for new players while the more obscure things, like playing a Crown to not double things when you could and then also caring about your Action count, will require more input from the user. Also, it's a lot easier for the user to understand why they're being asked for more input (because they're doing something weird) as opposed to the simpler interface "I click a Crown and then click the thing I want to double".

EDIT: punctuation
Title: Re: "Crown" Logic
Post by: randomjoyz on 10 January 2017, 05:14:09 PM
no that is exactly where I was going. your suggestion violates my "opinion: if you play your cards carefully and deliberately, the client should not second guess your decisions." as well as a new opinion I have which is, the game should not be suggesting moves for me.

I can't see more then 1 or 2 random people here and there (out of thousands) rage quitting over this so that seems like a non issue to me.  (of course this is just a guess and not a real statistic)

It just seems backwards to me that you would decide how a card was played after you already played it instead of playing it and having it act according to how when/how you played it.

but I think we can agree to disagree because all that is left is my opinion vs yours and I think we both understand each other.


edit (because this is driving me insane):

as it is now you: (click end actions) (click crown) (click copper)
*what you want: (click crown) (click play as treasure) (click copper)

your ways is the same amount of clicks but from the view of someone reading the cards and playing according to what the cards say/how the game is played, your way is backwards and confusing. I think it's better for the client to stay pure and intuitive from a logical standpoint, rather than being built around mistakes that a less logical player might make.

Don't punish logic, the real word does that enough!
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 06:58:53 PM
Quote from: AdamH on 10 January 2017, 03:52:16 PM
I made the mistake of coming back to read this after I said I wouldn't. Now I'm going to make another mistake by replying. Woooo!
The important thing is the happy memories we're making.
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 07:10:58 PM
Quote from: Witherweaver on 10 January 2017, 04:37:51 PM
So how do you think it should function?
Well I haven't thought it through - I just know it shouldn't partially resolve without knowing what phase it is.

Let's see. My first thought is what isotropic did for "maybe this is a mistake" situations. Not for Crown, isotropic never had Crown functioning. Doug Z. said it would require a lot of changes to his code, and then stopped updating isotropic; I imagine it was less fun of a project when only a few people were using it.

Anyway, you know, on isotropic, you would click say on a Copper in your hand despite having actions you could play, and instead of playing the treasure it would add a question mark after it. And if you clicked on it again then okay it would jump to your Buy phase and play it.

If a giant question mark shows up on a card in your hand, maybe that's just baffling. It could be "Sure?" If you click the card again, okay it does it (and if you click something else, the "Sure?" goes away). A general solution to these situations, which there are probably more of. For Crown in particular, it happens if you try to play it in your Action phase with no Action cards in hand. And there's a button to skip to the Buy phase.
Title: Re: "Crown" Logic
Post by: Cave-O-Sapien on 10 January 2017, 09:00:00 PM
Quote from: randomjoyz on 10 January 2017, 05:14:09 PM
edit (because this is driving me insane):

as it is now you: (click end actions) (click crown) (click copper)
*what you want: (click crown) (click play as treasure) (click copper)

Is this really what this whole thread is about?
Title: Re: "Crown" Logic
Post by: AdamH on 10 January 2017, 09:26:33 PM
Quote from: Cave-O-Sapien on 10 January 2017, 09:00:00 PM
Quote from: randomjoyz on 10 January 2017, 05:14:09 PM
edit (because this is driving me insane):

as it is now you: (click end actions) (click crown) (click copper)
*what you want: (click crown) (click play as treasure) (click copper)

Is this really what this whole thread is about?

It's not. I didn't see this edit, but I guess I should clarify.

When I click Crown, it shouldn't prompt me whether it should be doubling an Action or a Treasure every time I have a choice. Granted, I think this would be better than the current interface that exists, but I don't think it's best and it's not what I'm suggesting.

The interface should know what I'm playing Crown as based on the next non-Crown card that I click, so in this case what I want is (start of turn) (click Crown) (click Copper) and then I get $2. I only get a prompt if ((the +1 Card token is on the Crown pile) or (I choose not to double anything with my Crown)) and (I get a choice for what phase to play it in).

On a side note, I really wish you would have read my previous posts where I state that this is what I wanted multiple times instead of assuming this is what I wanted and making the comments you have. But I guess you can't have everything.


People are allowed to not like it, but nobody has shown that this in invalid in any way. I feel like that's important to point out. There are some that say this is beginning to resolve the card without knowing what phase it is. By some interpretations of those words, maybe they are right but like, it doesn't matter.

If I'm playing the tabletop game and I Crown a Copper at the start of my turn and my opponent shouts "HEY NO YOU DID NOT ENTER YOUR BUY PHASE YOU CROWNED NO ACTIONS AND PLAYED A COPPER YOU HAVE $1 THERE ARE NO TAKEBACKSIES I DO NOT GRANT YOU THIS" I would stop playing games with that person because that's ridiculous. I just feel like I should only have to go through that explicit step when it actually matters and just be able to play my cards in the obvious way the rest of the time.
Title: Re: "Crown" Logic
Post by: Polk5440 on 10 January 2017, 09:39:33 PM
Quote from: Cave-O-Sapien on 10 January 2017, 09:00:00 PM
Quote from: randomjoyz on 10 January 2017, 05:14:09 PM
edit (because this is driving me insane):

as it is now you: (click end actions) (click crown) (click copper)
*what you want: (click crown) (click play as treasure) (click copper)

Is this really what this whole thread is about?

Cheeky, but no. What the thread suggested is that the interface does not intuitively lead many users to (click end actions) (click crown) (click copper) when you want to play crown as a Treasure for a variety of fixable reasons. Instead it leads people to repeatedly (click crown) (click copper) (be confused) (ask for undo) (maybe be granted undo) (click end actions) (click crown) (click copper) (be annoyed). 

Furthermore, improvements in the interface were suggested which may lead to visual improvements, other button placements, and different button combinations to get Crown to do what the user intends it to do more intuitively.
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 09:53:38 PM
Quote from: AdamH on 10 January 2017, 09:26:33 PM
People are allowed to not like it, but nobody has shown that this in invalid in any way. I feel like that's important to point out. There are some that say this is beginning to resolve the card without knowing what phase it is. By some interpretations of those words, maybe they are right but like, it doesn't matter.
Incorrect. It is invalid at the most basic of levels. It sets the program up to be buggy and is bad programming.

In case anyone thought that I'd chosen this moment to change my mind!
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 10:03:35 PM
Quote from: AdamH on 10 January 2017, 09:26:33 PM
If I'm playing the tabletop game and I Crown a Copper at the start of my turn and my opponent shouts "HEY NO YOU DID NOT ENTER YOUR BUY PHASE YOU CROWNED NO ACTIONS AND PLAYED A COPPER YOU HAVE $1 THERE ARE NO TAKEBACKSIES I DO NOT GRANT YOU THIS" I would stop playing games with that person because that's ridiculous. I just feel like I should only have to go through that explicit step when it actually matters and just be able to play my cards in the obvious way the rest of the time.

When you're playing in real life, you can also just flash your hand to your opponent and pick up a card, and then toss everything into the discard pile in lots of situations.  New players do this quite a bit (even the guy that introduced me to Dominion), though pretty soon we start to see lots of reasons not to do this.  I try to point out that, that's not how the game works, and there are reasons, and it's worth learning the technical details of phases, playing cards, discard, buying, gaining, etc.

Of course, you can still do it because it's clear in real-life what intentions are.  We can't exactly expect a computer game to intuit such intentions.

If you were teaching a very new player to play Dominion, and they had Crown, Copper x4, this issue provides a good investigation into rules and card mechanics.

Edit: To make a more explicit analogy, when I draw Copper, Copper, Copper, Estate, Estate in the electronic version of Dominion, I can't click on Silver and gain a Silver!  Why not?  It's obvious I intended to play my Coppers.

Edit2: It is just very intuitive that the implementation of Dominion should follow the rules.  And not intuitive that it does not.  It says Action Phase when I play my Crown, but then it's suddenly not my Action phase before Crown has resolved?  That's simply incorrect.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 10 January 2017, 10:15:34 PM
I only read page 4 of this discussion, but I'm firmly behind Adam's proposal of making Crown work like you'd expect it to work.

If I Crown a Silver, it should just work.

If I want to Crown nothing as my last action to reduce the price of Peddler...man, that's such an edge case. Make that person go through the tricky interface. Sure they need to be able to do it, but don't make this literally the easiest way to play the card.

Edit: At the very least, if you play a Crown in your action phase, but you don't have any other action cards left in hand, pop up a choice: play as action | play as treasure.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 10:25:27 PM
You never play Crown 'as action' or 'as treasure', so that would be extremely confusing.  Perhaps 'Play an Action' or 'Play a Treasure'.  I think Donald's idea is fine: prompt a kind of 'are you sure?' thing.

Edit: We also have multiple other Edge Cases: + Card Token, Enchantress, maybe more.
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 10:29:23 PM
Quote from: Witherweaver on 10 January 2017, 10:03:35 PM
Edit: To make a more explicit analogy, when I draw Copper, Copper, Copper, Estate, Estate in the electronic version of Dominion, I can't click on Silver and gain a Silver!  Why not?  It's obvious I intended to play my Coppers.
I thought they had programmed this exact feature. Maybe you have it turned off. It is certainly fine to let you click Silver there and figure, you must mean to play enough basic treasures to buy that (if you have enough treasures that don't do anything special when played in hand to afford the card). There were too many cases where it led to misplays (e.g. debt), so I turned it off; maybe they will figure it out yet.

I do not think it's a problem to get a click on a card from the player and figure out that they mean to jump to the Buy phase. The problem is retroactively changing what phase a card was played in, based on further inputs during resolution of it.
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 10:33:40 PM
Quote from: Witherweaver on 10 January 2017, 10:25:27 PM
You never play Crown 'as action' or 'as treasure', so that would be extremely confusing.  Perhaps 'Play an Action' or 'Play a Treasure'.  I think Donald's idea is fine: prompt a kind of 'are you sure?' thing.
"Play in Action phase" / "Play in Buy phase." Potentially faster than having to move the mouse over to the "end Action phase" button and then back.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 10:35:01 PM
Well, okay; I actually think there's merit in explicitly requiring you to play treasures, then buy things, especially for newer players.

QuoteI do not think it's a problem to get a click on a card from the player and figure out that they mean to jump to the Buy phase. The problem is retroactively changing what phase a card was played in, based on further inputs during resolution of it.

Right, I agree with this.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 10:35:33 PM
Quote from: Donald X. on 10 January 2017, 10:33:40 PM
Quote from: Witherweaver on 10 January 2017, 10:25:27 PM
You never play Crown 'as action' or 'as treasure', so that would be extremely confusing.  Perhaps 'Play an Action' or 'Play a Treasure'.  I think Donald's idea is fine: prompt a kind of 'are you sure?' thing.
"Play in Action phase" / "Play in Buy phase." Potentially faster than having to move the mouse over to the "end Action phase" button and then back.

Sure, I like.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 10 January 2017, 10:36:03 PM
I guess I got my edge cases and wordings slightly wrong, but my point remains.

When a user has a hand full of treasures, by default they should be crowning treasures. Leave the tricky interface for the tricky edge case.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 10:47:10 PM
Quote from: allanfieldhouse on 10 January 2017, 10:36:03 PM
I guess I got my edge cases and wordings slightly wrong, but my point remains.

When a user has a hand full of treasures, by default they should be crowning treasures. Leave the tricky interface for the tricky edge case.

But it is simply incorrect.  You have to play the card first, at which point you are in some phase, before selecting what to play.  You shouldn't deduce (and retroactively change) what phase you're in by what you do while resolving the card.  See what Donald said.

You could have something, like a feature wherein you are automatically moved to Buy Phase when you have 'dead actions' by default, unless in such situations where that would be bad (the 'edge cases' we've discussed).  Some examples include a hand of all Copper and {Necropolis, Throne Room, Crown}.  I'm not sure I would like such a feature.  Clicking the 'End Actions' button is a tad annoying, but the interface making decisions for me, even when it's the decision I was going to make, doesn't strike me as great.
Title: Re: "Crown" Logic
Post by: AdamH on 10 January 2017, 10:50:03 PM
I think we have slightly different philosophies on how to teach Dominion to new players. I agree with a lot of what you said, and the only thing you said that I disagree with enough that I feel like I should mention it is this:

Quote from: Witherweaver on 10 January 2017, 10:03:35 PM
Of course, you can still do it because it's clear in real-life what intentions are.  We can't exactly expect a computer game to intuit such intentions.

Of course we can't expect a computer game to figure out what we're thinking and what's intuitive, but isn't the point of a good UI to make the human being adjust as little as possible to the program's interface to get the desired result? In this case, there is a way to make the clicks operate in the most intuitive way for a lot of new players: "when I Crown a Silver it should just work" instead of "you had to click End Actions first and now you're screwed".

It looks like very few people think that clicking End Actions on a hand of all Treasures to Crown a treasure is the right thing. I typed some more stuff but while I was typing it was pretty much covered by other people.

The only main disagreement for me is this whole "retroactively changing what phase you're in" -- I still feel that there is a better interface possible and the issues people have with what that does with the code aren't a good reason to not make the better interface. If it meant that you actually couldn't do everything the game demands be possible it would be a different story, but that's not the case.

I have had a successful career in software based on the principle that what my customer wants is more important than making my job as software-maintenance-guy easier. Maybe other people have different opinions but stating them again is not going to change my mind. The best interface that's possible to implement should be implemented, even if it makes the code harder to maintain.

I can actually see some arguments for why my idea might not be the best user experience -- maybe if I have other Actions in hand I should be required to click End Actions before I can Crown a treasure. I don't agree with it but it's not my place to decide -- it's the place of people are using this software for the first time. My opinion is one of many but it's really easy to just ignore the most important opinions (the ones that are hardest to get, admittedly).

What I'm saying is, I'd be convinced by accounts from these types of people saying my idea is not best and something else is. Not by anything else. Until that is provided, I think dismissing my idea is passing up the chance to have the best interface, which is kind of the whole point in my professional opinion.


Quote from: Witherweaver on 10 January 2017, 10:47:10 PM
Clicking the 'End Actions' button is a tad annoying, but the interface making decisions for me, even when it's the decision I was going to make, doesn't strike me as great.

The interface is not making decisions for you. All legal options are still there, it's just that the most commonly used option is the easiest one to do.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 10:54:07 PM
To be clear, I'm disagreeing that what you want is the best interface, and not just that it's a more difficult interface to implement. 

Edit:

Quote from: AdamH on 10 January 2017, 10:50:03 PM
Quote from: Witherweaver on 10 January 2017, 10:47:10 PM
Clicking the 'End Actions' button is a tad annoying, but the interface making decisions for me, even when it's the decision I was going to make, doesn't strike me as great.

The interface is not making decisions for you. All legal options are still there, it's just that the most commonly used option is the easiest one to do.

Here I was talking about the 'Auto Buy Phase' feature I had proposed (in the text that was not copied), wherein the client would automatically move you to the Buy phase when you still have Actions in hand in certain situations.  So yeah the interface is making decisions for you: it's deciding to end your Action Phase and start your Buy Phase without you telling it to.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 10 January 2017, 11:16:42 PM
So it sounds like the only interface that makes both sides happy is the following:

When it's still your action phase and you play a Crown with no other action cards in hand, it should ask "Play in Action Phase" or "Play in Buy Phase". Any other situation, it just plays how it currently does.
Title: Re: "Crown" Logic
Post by: Witherweaver on 10 January 2017, 11:18:23 PM
Quote from: allanfieldhouse on 10 January 2017, 11:16:42 PM
So it sounds like the only interface that makes both sides happy is the following:

When it's still your action phase and you play a Crown with no other action cards in hand, it should ask "Play in Action Phase" or "Play in Buy Phase". Any other situation, it just plays how it currently does.

I was just thinking that this seems to me like the best idea so far.
Title: Re: "Crown" Logic
Post by: Donald X. on 10 January 2017, 11:18:29 PM
Quote from: AdamH on 10 January 2017, 10:50:03 PM
The best interface that's possible to implement should be implemented, even if it makes the code harder to maintain.
You mean, even if it causes bugs that mean the program is doing the wrong thing for a while, until they're both reported and found? "If it makes the code harder to maintain" is simply not part of this at all.

As part of my successful programming career, I had to interview people for programming jobs. Someone who pursues the path of more bugs would be someone I was trying to weed out.

Again it's moot, and it's not because you aren't pals with Stef. It's that Stef isn't the kind of programmer to make this mistake. You don't get all the cards to hang together correctly if you're willing to cheat on functionality for some of them, for whatever noble reason.
Title: Re: "Crown" Logic
Post by: randomjoyz on 11 January 2017, 12:25:56 AM
Quote from: allanfieldhouse on 10 January 2017, 10:15:34 PM
I only read page 4 of this discussion, but I'm firmly behind Adam's proposal of making Crown work like you'd expect it to work.

If I Crown a Silver, it should just work.

If I want to Crown nothing as my last action to reduce the price of Peddler...man, that's such an edge case. Make that person go through the tricky interface. Sure they need to be able to do it, but don't make this literally the easiest way to play the card.

Edit: At the very least, if you play a Crown in your action phase, but you don't have any other action cards left in hand, pop up a choice: play as action | play as treasure.
except that this is NOT how you would expect it to work if you understand how the game is played, you would expect it to work the way it currently works
(play it during action phase, it plays as an action, play it during buy phase, it plays like a treasure. what is unexpected about that??)


Quote from: allanfieldhouse on 10 January 2017, 11:16:42 PM
So it sounds like the only interface that makes both sides happy is the following:

When it's still your action phase and you play a Crown with no other action cards in hand, it should ask "Play in Action Phase" or "Play in Buy Phase". Any other situation, it just plays how it currently does.
I read what donald wrote and originally felt like this was ok, but after a second thought I realized that IF it was going to be implemented like this, it might as well be implemented like this for every instance you play a crown in (for the sake of the "perfect AdamH ui", because say I have [necropolis, crown, gold] the regular human brain is thinking "OH! let's crown that gold *clicks crown*) (In other words, you are not forced to play an action in your hand just because you have it so the same logic of "user friendly ui" applies to hands with or without other action cards in hand). By implementing it like this you are teaching the user that this is how the card works, that when you play this card you get to chose if you want to jump to your buy phase or stay in action phase. To me this is both fundamentally wrong (this is not how the card works) and really annoying.

To implement this only in the edge situation of not having other action cards would be the least logical and intuitive, most confusing change this thread has suggested imo. so please, to the developers, ether implement it in every situation or none, otherwise I'm gonna be scratching my head every time I play crown, and it's one of my fav cards :p
Title: Re: "Crown" Logic
Post by: Witherweaver on 11 January 2017, 12:30:56 AM
Quote from: randomjoyz on 11 January 2017, 12:25:56 AM

Quote from: allanfieldhouse on 10 January 2017, 11:16:42 PM
So it sounds like the only interface that makes both sides happy is the following:

When it's still your action phase and you play a Crown with no other action cards in hand, it should ask "Play in Action Phase" or "Play in Buy Phase". Any other situation, it just plays how it currently does.
I read what donald wrote and originally felt like this was ok, but after a second thought I realized that IF it was going to be implemented like this, it might as well be implemented like this for every instance you play a crown in (for the sake of the "perfect AdamH ui", because say I have [necropolis, crown, gold] the regular human brain is thinking "OH! let's crown that gold *clicks crown*). By implementing it like this you are teaching the user that this is how the card works, that when you play this card you get to chose if you want to jump to your buy phase or stay in action phase. To me this is both fundamentally wrong (this is not how the card works) and really annoying.

I'm thinking of it more like this:

Interface pauses when you choose to play Crown, and says "hey you might have made a mistake: did you mean to click the 'End Actions'? button first?  Here choose one of these options to clarify".  Since it is pretty likely that you did mean to click the 'End Actions' button first, and really such a 'are you sure?' thing is not that ostentatious, I think this is okay.

And you're not violating rules, you are clarifying, and then playing the card.
Title: Re: "Crown" Logic
Post by: randomjoyz on 11 January 2017, 12:51:27 AM
Quote from: Witherweaver on 11 January 2017, 12:30:56 AM
Quote from: randomjoyz on 11 January 2017, 12:25:56 AM

Quote from: allanfieldhouse on 10 January 2017, 11:16:42 PM
So it sounds like the only interface that makes both sides happy is the following:

When it's still your action phase and you play a Crown with no other action cards in hand, it should ask "Play in Action Phase" or "Play in Buy Phase". Any other situation, it just plays how it currently does.
I read what donald wrote and originally felt like this was ok, but after a second thought I realized that IF it was going to be implemented like this, it might as well be implemented like this for every instance you play a crown in (for the sake of the "perfect AdamH ui", because say I have [necropolis, crown, gold] the regular human brain is thinking "OH! let's crown that gold *clicks crown*). By implementing it like this you are teaching the user that this is how the card works, that when you play this card you get to chose if you want to jump to your buy phase or stay in action phase. To me this is both fundamentally wrong (this is not how the card works) and really annoying.

I'm thinking of it more like this:

Interface pauses when you choose to play Crown, and says "hey you might have made a mistake: did you mean to click the 'End Actions'? button first?  Here choose one of these options to clarify".  Since it is pretty likely that you did mean to click the 'End Actions' button first, and really such a 'are you sure?' thing is not that ostentatious, I think this is okay.

And you're not violating rules, you are clarifying, and then playing the card.
I think that just a warning would probably be the best solution (besides leaving it as is and letting people learn by making the mistake once, this is one of the strongest ways to learn something) but this is annoying(to be prompted, "are you sure??" when I am fricking sure because I know how to play).. Hmm... maybe if it was togglable like warnings for trashing cards
Title: Re: "Crown" Logic
Post by: tufftaeh on 11 January 2017, 01:25:55 AM
If I understand Adam's sugestion correctly, he wants to be able to click Crown, click Copper, in order to move to the buy phase and to double a Copper, without having to click "End Actions" before clicking Crown.
If this is correct, how about the standard situation where you just happen to want to play no action card (e.g. Necropolis)? Shouldn't you consequently be able to immediately click on a treasure card then in order to move to the buy phase and to play that treasure card, without having to click the annoying "End Actions"? (With autobuy, you wouldn't even need to click a treasure card.)

For the record, I'm not really suggesting this. I support an interface which helps the users to learn how the game actually works. In the standard case as well as in the rare case with Crown without other actions, I should be required to state explicitly that I want to leave the action phase (provided I have still an action card I could play).

I'm looking forward to statements from fast-play advocates who now will ask for this extended suggestion at least as an option because it might speed up play even more...
Title: Re: "Crown" Logic
Post by: randomjoyz on 11 January 2017, 02:11:28 AM
Quote from: tufftaeh on 11 January 2017, 01:25:55 AM
If I understand Adam's sugestion correctly, he wants to be able to click Crown, click Copper, in order to move to the buy phase and to double a Copper, without having to click "End Actions" before clicking Crown.
If this is correct, how about the standard situation where you just happen to want to play no action card (e.g. Necropolis)? Shouldn't you consequently be able to immediately click on a treasure card then in order to move to the buy phase and to play that treasure card, without having to click the annoying "End Actions"? (With autobuy, you wouldn't even need to click a treasure card.)

For the record, I'm not really suggesting this. I support an interface which helps the users to learn how the game actually works. In the standard case as well as in the rare case with Crown without other actions, I should be required to state explicitly that I want to leave the action phase (provided I have still an action card I could play).

I'm looking forward to statements from fast-play advocates who now will ask for this extended suggestion at least as an otion because it might speed up play even more...
I don't think anyone is suggesting that, it would require ether losing functionality or adding a bunch of options every time you play a crown (play as action/dont crown, play as treasure/dont crown,undo or click the card you want to crown) and would be super confusing. honestly I'm still not totally sure what adam is suggesting but i think he wants something to ask you after you play crown if you want to play as an action or a treasure in instances with no actions left.
Title: Re: "Crown" Logic
Post by: AdamH on 11 January 2017, 03:07:08 AM
Quote from: Donald X. on 10 January 2017, 11:18:29 PM
Quote from: AdamH on 10 January 2017, 10:50:03 PM
The best interface that's possible to implement should be implemented, even if it makes the code harder to maintain.
You mean, even if it causes bugs that mean the program is doing the wrong thing for a while, until they're both reported and found? "If it makes the code harder to maintain" is simply not part of this at all.

As part of my successful programming career, I had to interview people for programming jobs. Someone who pursues the path of more bugs would be someone I was trying to weed out.

Are you suggesting that it's standard practice to release code with bugs in it? Like, yeah I understand it's really hard to do that, but the point is to test it so that it doesn't have bugs in it.

Adding this in would probably make it more likely to have bugs in the future, yes. And if everything else was equal yeah I wouldn't do it this way -- if a computer was the only thing to ever use my software I would totally agree with you. But it's not. People are using the software and the whole point of the software is to make their experience better. If what my customers want is going to make the code harder to maintain, then that's how it has to be and I will design around it to minimize that risk.

At no point did I ever say that anyone should just write worse-designed software for the sake of it.

Quote from: Donald X. on 10 January 2017, 11:18:29 PM
Again it's moot, and it's not because you aren't pals with Stef. It's that Stef isn't the kind of programmer to make this mistake. You don't get all the cards to hang together correctly if you're willing to cheat on functionality for some of them, for whatever noble reason.

1. If my personal feelings towards Stef and Philip were coming into play, I wouldn't be here trying my hardest to make their product succeed.

2. Designing software that is what the customer wants is not a mistake. I feel like what you've said here is below the belt. "Whatever noble reason" is actually a reason and I don't understand why you're trying to convince me that designing software that is what your customers want isn't important.
Title: Re: "Crown" Logic
Post by: randomjoyz on 11 January 2017, 03:31:23 AM
you keep saying "this is what the customer wants, it doesn't matter if its ideal just that customers are happy" or something along those lines.

firstly how do you know what the customer wants? I'm a customer I don't want it, other people have raised concerns against this as well. Maybe customers want the simple intuitive way it is now. thousands of games have been played already, many many many people have already hit this situation (at least I have a few times so I'm sure others have over the many games played) and I'm guessing most of them hit undo, thought about it for a few seconds and realized "oh that was my action phase" and continued on there way realizing that it's working as it should.

second, if the customers want something that is fundamentally against the game the makers should put their foot down.
Title: Re: "Crown" Logic
Post by: Donald X. on 11 January 2017, 03:41:10 AM
Quote from: AdamH on 11 January 2017, 03:07:08 AM
Are you suggesting that it's standard practice to release code with bugs in it? Like, yeah I understand it's really hard to do that, but the point is to test it so that it doesn't have bugs in it.
When you have interacting rules on cards, you cannot possibly test everything. The way they can avoid releasing code with bugged interactions is to implement everything very accurately.

Quote from: AdamH on 11 January 2017, 03:07:08 AM
2. Designing software that is what the customer wants is not a mistake. I feel like what you've said here is below the belt. "Whatever noble reason" is actually a reason and I don't understand why you're trying to convince me that designing software that is what your customers want isn't important.
The customers don't want a buggy program! That is also a thing they don't want. Would you believe.

You continually frame things a different way than I put them; the way that makes it sound good to you I guess, so that it's clear to you that I must be wrong. It sure sucks. I don't feel like I'm doing that to you but I mean I'm only human so what are the odds.

And no-one is convincing anyone, and it's not affecting what happens in the program. So, good luck on there being no more of this. If I were a mod I would lock the thread.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 11 January 2017, 07:14:42 PM
Quote from: Donald X. on 11 January 2017, 03:41:10 AM
And no-one is convincing anyone, and it's not affecting what happens in the program.

I don't know -- I still see this thread as being useful. The interaction between Adam and yourself being the exception (both ways). People are suggesting changes and other people are critiquing them. People have pointed out issues with my suggestions, and I'm trying to incorporate those things and come up with something new.

As for it not affecting what happens, I sincerely hope that if the community comes up with some mythical amazing interface that is perfect, the developers would adopt it. At the very least, it gives them some possible directions to look into.
Title: Re: "Crown" Logic
Post by: Witherweaver on 11 January 2017, 07:30:26 PM
I've been reading Seveneves (Neal Stephenson), and I came across a quote that I found funny, especially in light of all the discussion on different preferences for interfaces (here and elsewhere):

Quote
"Remember, these things are designed for amateurs."
"Tell me about it," Ivy snorted.  "The user interface is so easy to use, I can't do anything."
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 12 January 2017, 03:41:59 PM
So to sum up the whole thread, the current interface does what the rules say (which is important). Unfortunately it also makes it really easy to play the card incorrectly (as in "not what you meant to do"). Any potential interface improvement needs to address the "accidental misplay" situation while simultaneously: 1 - not making the card play technically incorrectly. 2 - not making the card annoying to play for people who are fine with the current system.

The only suggestion I've seen so far that fits these qualifications is some sort of warning/choice presented to the user when it's likely they're making a mistake. When showing this warning, there is a valid argument to be made for keeping the interface consistent and always showing the warning when you play Crown in the action phase. Although valid, I think this argument is outweighed by the "don't be annoying" requirement. The specific situation that's really causing the problem is when you're out of (other) actions, and you want to Crown a treasure. So that's where the warning should be.

So after considering the subsequent arguments/critiques, I think some form of my previous suggestion is the best solution.

Quote from: allanfieldhouse on 10 January 2017, 11:16:42 PM
When it's still your action phase and you play a Crown with no other action cards in hand, it should ask "Play in Action Phase" or "Play in Buy Phase". Any other situation, it just plays how it currently does.

I'm open to things like tweaks in wording and such, but other than that, I think this is my "final answer" on how this needs to be addressed.

PS - can we stop arguing about coding style and clients and such? That's not helping the discussion of how Crown should work.
Title: Re: "Crown" Logic
Post by: Mick on 12 January 2017, 04:26:42 PM
I think allanfieldhouse's solution makes the most sense, and is a solution that would easily work for any/all future action/treasure cards as well.
Title: Re: "Crown" Logic
Post by: yed on 12 January 2017, 05:32:10 PM
Ok, so after the discussion I would like this:

If I click Crown with no other action card in hand Crown won't be played, but two buttons apper "Action phase", "Buy phase" and other treasures became clickable.
At this point the card is not yet played, so rules are ok.
Clicking on "Action phase" would play Crown as action. "Buy phase" would move you to buy phase and play Crown as treasure.
Click on a other treasure card would be shortcut for "Buy Phase" + clicking on that treasure card.

I think this is both accurate according to the rules and also implements Adam's idea without the need for considering any edge cases.
Title: Re: "Crown" Logic
Post by: Witherweaver on 12 January 2017, 05:44:05 PM
Quote from: yed on 12 January 2017, 05:32:10 PM
Ok, so after the discussion I would like this:

If I click Crown with no other action card in hand Crown won't be played, but two buttons apper "Action phase", "Buy phase" and other treasures became clickable.
At this point the card is not yet played, so rules are ok.
Clicking on "Action phase" would play Crown as action. "Buy phase" would move you to buy phase and play Crown as treasure.
Click on a other treasure card would be shortcut for "Buy Phase" + clicking on that treasure card.

I think this is both accurate according to the rules and also implements Adam's idea without the need for considering any edge cases.

To be pedantic, there is no 'as action' or 'as treasure'; it's just stay in your Action Phase and play it, or move to Buy Phase and play it.

But yes.
Title: Re: "Crown" Logic
Post by: markus on 12 January 2017, 05:55:01 PM
I support allanfieldhouse's solution as well. Yed's solution could run into problems, if there were any "beginning of buy phase" effects.

The most important bit is that clicking on Crown still in the action phase gives a warning / can be undone. If you really want to make that situation quicker to play, i.e. without having to click "end actions", then you should also allow to play treasures with only Necropolis (or Ruined Village) in hand. That comes up more often, although misclicking there is not a big deal.
Title: Re: "Crown" Logic
Post by: randomjoyz on 12 January 2017, 08:33:47 PM
Whatever is implemented I would rather be implemented to crown card as a whole, not only in the edge case of not having any action cards left. Because this is not an edge case, you can jump to your buy phase and crown treasures regardless of if you do or don't have other actions in your hand. If things are not consistent, it is confusing for the user.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 12 January 2017, 10:31:34 PM
Quote from: randomjoyz on 12 January 2017, 08:33:47 PM
Whatever is implemented I would rather be implemented to crown card as a whole, not only in the edge case of not having any action cards left. Because this is not an edge case, you can jump to your buy phase and crown treasures regardless of if you do or don't have other actions in your hand. If things are not consistent, it is confusing for the user.

The reason I disagree with this is that when you have a bunch of actions left that you could play (but don't want to for some reason), no one is getting confused and clicking Crown expecting for it to be a treasure. When you still have a hand full of playable actions, it's much more obvious that you're still in your action phase than when you have a hand full of treasures.

I'd rather just fix the one situation where the card is causing misplays. This prevents the card from being annoying when you're just doubling actions like normal. Yeah, it's not consistent, but the inconsistency is worth it.
Title: Re: "Crown" Logic
Post by: randomjoyz on 12 January 2017, 11:54:58 PM
they might if the last time they played it, they were prompted an option to jump to buy phase
Title: Re: "Crown" Logic
Post by: Witherweaver on 18 January 2017, 10:25:07 PM
It also occurred to me that Arena is another special case where you need to have the current phase well-defined when you click Crown.

(Though, you'd generally want to click it (to either Play or Discard) in your Buy Phase with a hand of Crown, Copper x4 and not your Action Phase.)
Title: Re: "Crown" Logic
Post by: Diedre on 27 January 2017, 12:05:13 PM
Implementing a button "Play as Action" in the case where you have Crown and no more Action cards in hand is a option.
Like when you have a option to trash cards but you also can continue playing Actions.

I know that Stef won't want to change that though.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 04 February 2017, 03:34:12 PM
Quote from: Diedre on 27 January 2017, 12:05:13 PM
Implementing a button "Play as Action" in the case where you have Crown and no more Action cards in hand is a option.

Further back in the thread, people explained that you don't actually play Crown "as" an action or a treasure. You always play it as an "action/treasure" but during a specific phase of your turn.

While that argument may be true, I still think the "play as action" or "play as treasure" options are the simplest and most intuitive way of wording the choice. I know Donald places a lot of emphasis on simple wording when designing cards, and I'm assuming that preference carries over to the online implementation. This wording is functionally the same, and everyone understands what it means.
Title: Re: "Crown" Logic
Post by: Cave-O-Sapien on 04 February 2017, 08:52:28 PM
I've played against several people who unwittingly play Crown sub-optimally (i.e. as an action when they have no actions). I usually point it out and offer to Undo a step. Sometimes they take me up on it.

I think this is evidence that the current interface for Crown needs to be fixed. 
Title: Re: "Crown" Logic
Post by: zeruf on 05 February 2017, 08:04:56 AM
The easiest solution would be to add two buttons if you play crown as the last action card in your hand. One would say 'play as action' and the other would say 'play as treasure'. This would solve everything including the +card thing since you wouldn't get the card until you chose whether to play it as a treasure or as an action. You could also ignore the prompt and simply play one of your treasures (which would then be crowned). If you had +card on crown in that case then you would simply draw the card after crowning (which is technically the wrong order but it is your own fault that you didn't get to see the card you drew before crowning).

edit: I only read the first page, so I'm glad to see now that others came to similar conclusions
Title: Re: "Crown" Logic
Post by: yed on 05 February 2017, 09:10:40 AM
Quote from: Stef on 25 January 2017, 06:00:43 PM
We have no plans to change Butcher.

We have no plans to change Crown either.

However, two features are planned that will improve the Crown experience:
1) we will add autoplay at some point. At that point Crown will get an autoplay "automatically end my action phase when the only actions I have in hand are Crowns" which will by default be on. People can decide to turn it off in individual games if that's what they want.
2) we will add an undo-mode that automatically grants undo when there is no new info. That mode will also be the default.
Title: Re: "Crown" Logic
Post by: allanfieldhouse on 05 February 2017, 04:46:26 PM
It's funny that their autoplay solution was one of the options immediately suggested in this thread, but then it was shot down because of all the times where that makes it play wrong (obviously, turning the feature off in an individual game will fix it when there's an edge case).

I DO think that behavior is the best/most intuitive long-term solution though.
Title: Re: "Crown" Logic
Post by: Witherweaver on 05 February 2017, 06:22:11 PM
To reemphasize, there is no such thing as "Play as Action" and "Play as Treasure".  People keep suggesting this, and it is fundamentally incorrect. Crown is an Action and a Treasure; you don't choose which you play it as; it is always both, so it is always played as both.  It depends only on what phase you play it in.  (Consider playing Crown during Black Market resolution.)
Title: Re: "Crown" Logic
Post by: Witherweaver on 05 February 2017, 06:24:43 PM
Hmm.. doesn't Butcher need to be fixed so that you have the choice to empty Coin Tokens?

Edit: I guess I probably should have read that thread.