Extremelyd1 / minecraft-bingo

Item bingo in Minecraft
GNU General Public License v3.0
36 stars 17 forks source link

UI improvements and chat channel functionality #51

Closed joeShuff closed 3 years ago

joeShuff commented 3 years ago

a few changes made in this branch:

Add game config to the pre-game gameboard.

image

Add configurable progress notifications. Support for progress on lines or number of items (Full card only)

example config

notify-progress:
  lines:
    - each
  full-count:
    - 10
    - 20
    - 24

image

Stop gameboard flickering, most noticable with timer

BEFORE AFTER
timer-old timer-new

Join team quicker

Added support to add yourself to a team with /team <teamcolor>.

I added this because playing a private game with friends is easier to have everyone adding themselves to teams and we found it quite annoying typing out the whole add command. Especially without auto completion.

Still to do

I don't full understand how the lockout gamemode works as when you enable it the numOfLinesToComplete is set to 0 which shows the wincondition as 0 lines. How would you expect lockout to display on the pregame game board?

Could the progress notifications work with the lockout gamemode?

Extremelyd1 commented 3 years ago

To answers the questions you still have, let me preface this comment by explaining the lockout gamemode: after a certain (configurable) number of teams collect an item it will be locked and can't be collected by the remaining teams. Thus the win condition for lockout is dynamically calculated: if a team has obtained a number of items x and all opposing teams cannot reach more than x items, that team has won.

How would you expect lockout to display on the pregame game board?

The entries "Win Condition" and "Lockout" on the pregame game board can be condensed in "Game Mode" or "Game Type" which has a potential values: "[x] Lines", "Full Card", or "Lockout".

Could the progress notifications work with the lockout gamemode?

Definitely! While there are no lines to complete in lockout, you can still post progress notification for the number of collected items.

joeShuff commented 3 years ago

Ok that makes sense now, thanks for explaining! I will make some changes now I understand it.

joeShuff commented 3 years ago

I remembered another quality of life change I wanted to try to implement so I'll get that added before review

joeShuff commented 3 years ago

more new features:

Chat Channels

When you're doing solo teams, team chatting being the default can be annoying so I added the \channel command to allow people to switch between TEAM and GLOBAL default chatting.

Because of this I needed to also add a command for talking to your team if you're default in global, so I also added a \tchat command and a \tloc command to quickly send your location to your team or note down coords that are important to you for later.

ezgif com-gif-maker(2)

Extremelyd1 commented 3 years ago

Thanks for your interest in this project and contributing to it, but as a heads up for next time: please try to limit a pull request to a single feature. While this pull request is still manageable in terms of reviewing, it would greatly speed up review and interactions if it only pertained to a single feature.

Now content-wise, I already have a few remarks: First of all, there already exists a command to share coordinates to you team, namely /coordinates, aliased as /coord or /coords. Secondly, Perhaps this is a bit nitpicky, but I would like some commands to change names: I don't find the name for the /tchat command intuitive, I would prefer something like /teamchat with alias /t. This alias, while it is short and convenient to type chat messages to your team with, might resemble the /team command too much. So perhaps the alias could also be /tc. Adding to this, the /team command used for joining teams directly might be better renamed (or aliased) to /join.

joeShuff commented 3 years ago

Sorry about that, I got too carried away fixing little things that bothered me and thought they were too small to warrant their own PR. I'll keep that in mind for if I create another.

First of all, there already exists a command to share coordinates

I completely missed that, I'll remove my implementation.

Secondly, Perhaps this is a bit nitpicky, but I would like some commands to change names

I do agree with your comments and have changed teamchat to be /teamchat with alias /tc and created a new /join command to reduce overcomplicating the existing team command.

joeShuff commented 3 years ago

I'm not sure I responded to your requests correctly :/ It looks like I reviewed my own code, still getting used to githubs review system. I hope you can see my responses easily and my changes.

Extremelyd1 commented 3 years ago

I believe you created a review containing the comments that were responses on the threads I created. To avoid this in the future, you can just respond to the threads I create with comments (by selecting "Add single comment" instead of "Start review"). This will add the comment immediately on the thread, so perhaps you want to add these comments after you have pushed the necessary commits.