bingosync
bingosync copied to clipboard
Feature suggestion: "counting" tiles
I just watched this video and noticed a possible improvement for the bingo board:
Problem: These dudes have goals like "complete 5 levels in normal difficulty", but as soon as multiple goals like this are in play it gets very hard to remember all of it. Proposition: How about the option to declare a tile "counting", and have a little counter in the corner of the tile which counts down every time a player selects it? As soon as the counter hits zero the tile is marked as won by the player who first completed it (if playing lockout, for example). Don't know how often this use case arises, but I wanted to throw it out there.
I really hope a feature like this get implemented. Splatoon and botw have multiple squares that require you to count the number of things you've done/collected and having the board be able to track that would be really handy.
The idea of clicking the square to increment the counter sounds good and is straightforward. Alternatively you could also have a very small number input in the corner of the tile to manually set the count.
In terms of how to set a tile as a "counter" tile you could either give the goal a special type/tag in the goal list or have a way to manually override some or all tiles to have a counter.
Came here for a similar reason, from the exact same place as OP (Seriously, Panga and Raysfire have put a lot of work into that card of theirs). That being said, I'm currently working on implementing this in my own fork.
- Since goals are just json elements, it's easy enough to add support for a "counter" parameter.
- As far as the UI goes, there are a few things to consider:
- The counter needs to be displayed purely client side, since if information is loaded from the server in its entirety, it reveals what goals the player is working towards and may influence the actions of the other player(s). Information can still be tracked server side (haven't looked at the exact implementation yet but since state is saved server-side, it makes sense), but shouldn't be sent/loaded outside of the originating connection.
- While I like the idea that @armuell had, where clicking the box increments the counter, this idea introduces several UX issues that I think need to be avoided. One, it changes the expected action of clicking a card (completing/resetting a goal). Two, it creates an unexpected state loop (1, 2, 3, Complete, Reset), changing the UX flow from a simple on/off state to a multiclick (but also keeping the simple state for some of the goals). Ideally, we want something that doesn't replace click actions but rather augments them.
- Additionally, think about cases where you need to complete 10/15/20 of something. At that point, having the action only allowing increment would be a nightmare if mistakes are made. At that point, it's would simply be easier to manually track counters on a piece of paper.
- With those in mind, my current thought is leaning towards a +/- counter with a number field between them, located at the bottom of the goal. When the field number matches or exceeds the chosen count amount, it automatically completes the goal. In the interest of simplicity, the field that displays the current count would be unedittable, although that's mostly because I can't really think of a valid use case where allowing manual input would be more useful than the headaches it introduces. Using a separate field also maintains the expected "click to complete" functionality, letting a player complete an action if they forget/don't want to use the counter.
- Once I have an example working, I'll also play around with +/- additional amounts, like sets of 5. I may also see about adding a progress bar for additional visual feedback.
rpierce99 has a pull request for this at #141, does that look good to you all?
That's awesome. Haven't had a chance to look at this so great to see that someone was able to step up. Seems decently well designed, too.