Coder Social home page Coder Social logo

appvalon's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

f3mshep

appvalon's Issues

Update role descriptions

  • Info icons to display role details in room setup view
  • Show only roles selected for this game in the sidebar
  • Option to expand and view all possible roles in sidebar

Reconsider the Spotify-esque button style

The rounded green buttons used throughout the app, combined with the black background, make the app look a lot like Spotify. Maybe we could use the gold color or something else to avoid that?

User missing ActionArea after rejoin

After refreshing and rejoining a game, I didn't see any console errors but I was missing the approve/reject buttons I should have seen below the board. Maybe it didn't pass my name into the ActionArea switch case properly.

Reaction Phase (see mocks)

  1. Allow the king to submit a proposed team for discussion
  2. Players can discuss out loud and react with yes, no, or question icons. They can change their reaction as many times as they want during the discussion
  3. Give everyone some time to react before giving the king the ability to end discussion (or possibly enable the button immediately so quick repeat teams can be approved without discussion)
  4. Allow the king to change their proposed team if necessary
  5. Allow the king to submit the (possibly revised) team for official approve/reject voting

Spectator Mode

Allow new people to join as spectators after the game has started.
They can see the state of the game and everyone's roles if they want.

Hamburger Menu

Appearance:

  • Top left
  • 'Appvalon' aligned to the right of it with 15px or 30px padding in between

Contents:

  • App version number
  • Reconfigure room
  • Restart game
  • Rejoin game
  • Change name
  • Exit game

Request: 'Reselect Team' button

Instead of leaving the previous team selected, start with nothing selected and add a 'reselect team' button
Bonus: Allow selecting more people than necessary for the team and only enforce the limit on clicking submit, to make it easier to change selections without deselecting first

Improve Room Creation

  • Change the default back to 7 or 8 players
  • Reorder the roles they're in the order we generally add them
  • When the number of players is changed, auto-select the 'normal' roles and lake setting for that size
  • Hide more advanced options and weird roles in a collapsed section so users can quickly choose a size and hit play without seeing too many choices, but have the option to customize further if they want
  • Have Avalon vs THavalon tabs/dropdown (allowing for future skins and other categories) at the top and change the selected and visible options based on that

UI improvements

  • Rounded corners on squares
  • Off-black mat to define the action area (see designs https://app.abstract.com/share/856992ff-69d6-48db-aed0-75f4ddbe8001)
  • Style the waiting for players page
  • Style the landing page
  • Don't display player cards in the action area during the team vote reveal, since it's duplicate information
  • Scale approve/reject cards so the submit button in the action area is always above the fold

Add Avalon vs THavalon toggle in room setup

  • A quick toggle to switch between basic Avalon rules and THavalon rules
  • Set defaults to the base rules but allow customization in both
  • Have a default set of roles selected based on game type and size

Missing Default Value for .isKing

There is a missing default value for the player.isKing. This causes an undefined type error, which I think was triggered in my case by a player leaving and then rejoining.
Capture

Avatar Improvements

  • Allow users to choose their own avatar colors
  • Allow users to upload custom avatars

"Don't Talk" Messages

Remind everyone to avoid talking about mission result expectations while the team members are voting, especially in THavalon
Remind good guys not to talk during the assassination phase

Quick Restart/Reconfigure

Allow the room host to quickly start a new game using the same room, so players don't have to exit and rejoin. They should be able to adjust the settings or number of players if necessary, or restart with the same settings.

Auto win game bug

While playing Appvalon, we found a new bug

Good had succeeded the first mission. Before the second mission had a chance to be proposed, the second mission appeared to be accepted and ran without any input. A two player team somehow went on a three player mission and it was succeeded without any additional input.

Two things we might want to look into:

  • input sanitization on the backend. It is possible an event was emitted by the web client, which resulted in the mission going (and somehow skipping states)
  • Logging on the heroku app - might not immediately resolve the issue, but will be helpful if we need to debug issues in the future

Detailed mission history

Allow players to see who was on the previous missions
Maybe allow clicking on a mission to view who was on that mission
Display small numbers on player cards representing which missions they went on? This would also help with reselecting successful missions or reverting to a previous mission

Update README

  • Game summary and rules
  • Instructions for how to use the app as a player
  • Instructions for how to run frontend and backend code locally

Add lover assassination feature to backend

HandleAssassination only checks if target is Merlin. This should be expanded so that the assassination vote object includes target role and an array for target names.

Move the 'continue' button after team vote results to next king

When the current king has both the 'reveal' and 'continue/next' buttons, they tend to click too fast so people don't see the team vote results.
2 options to help with that:

  • Disable the button for 10 seconds or however long feels necessary
  • Move the button to the next king like the mission result continue button

Generic Evil should see fellow evil

Currently Generic Evil appears to be coded like Oberon. This is inaccurate. Generic Evil should see their fellow evil players (besides Oberon), the other evil players should see them (besides Oberon), and Merlin should see them as evil. They should have the same knowledge level as the Assassin

Exit game should remove you from the room but remember your name

When a player uses the exitGame function, they should be completely removed from the room and player list so they can rejoin if it was a mistake, rejoin with another name, or another player can join instead.
It should remove the room name from localStorage but not the player name, so users playing multiple games in a row don't have to type their name multiple times.

Change proposed team

Allow the king to go back and change their proposed team if they made a mistake or got strong feedback after submitting it.
This can be built into the discussion phase once that's done but might be good to do separately earlier.

Admin overrides

Host can click a button to end any phase that's waiting on everyone to reply (e.g. team or mission voting) and set an automatic response for people who haven't voted

Add prompts when you need to do something

Let the user know when something changes and they need to do something on the page. E.g. when they have they become king, need to vote, need to flip a vote result, or need to lake someone.
Visual changes might be enough if the buttons are always on the screen, or audio cues or auto-scrolling might help if changes are off the page.

Game Skins

Give users the ability to upload custom themes/skins for Avalon (e.g. Harry Potter) to rename the characters and change the UI
We can also provide some default theme options

UX Improvement - change king order display logic

It has been suggested that displaying the king order using a queue is not the best UX. By changing the king order by "physically" moving the players around (popping the previous king off the queue, shifting her to end of the queue) instead of displaying order under the player names breaks continuity.

This could involve changing just the frontend, but the data structure returned from the backend could be changed as well (playerObj could have a kingOrder property, for example)

Add Lady of the Lake

Allow manual choosing of who starts with lake and whether to lake roles

Steps:

    • After the appropriate missions, tell everyone it’s lake time
    • Give the current lake holder an action to choose who to lake, show everyone what they chose, then submit final choice
    • Show them the role/alignment of who they laked

Prevent lake-backs:

  • Display a lake icon on the upper left of the player component
  • Prevent laking people who have previously had the lake
  • Track that in player data
  • Disable those people when showing lake options
  • Maybe show a disabled version of the lake symbol next to them

Custom Roles

Add a role-builder flow for users to create their own custom roles and save them to use in future games.

  • Role name
  • Alignment (could be unaligned)
  • Info this role sees about others
  • Info others see about this role
  • Special abilities (e.g. reveal to do __)
  • Assassinateable role?
  • Linked to any other role(s)?
    • e.g. required to be in a game with __ or assassinateable as a pair with __
  • Limits
    • e.g. only appears in games of size __

Stats and Achievements

Reveal roles(?) and alignments (color players red or blue)
Display various statistics and achievements at the end
Display achievements and stats in a profile page too - possibly shareable
Track all voting data for each person
Track who was on each proposed team to display along with the votes for that team
Come up with achievements for various strategies

Some ideas:

  • Allow player-awarded achievements so players can reward each other after a game in more subjective categories
    • Sneakiness
    • Good fake Merlin
    • Best lie/trick
    • Lake shenanigans
    • Best lie-detecting/logic/vibes
    • Revealed the most bad guys
    • Guessed the right Merlin (as Percival or bad, like if they failed assassination but wanted to reward the person who had the right idea)
  • Strategy/Role-specific achievements (I think https://avalongame.online/ was the site that had some of these)
    • Merlin - Got assassinated/survived assassination phase
    • Mordred - Failed the last mission
    • Percival/Merlin/Morgana - Voting correlation (e.g. Morgana successfully misled Percival, Percival followed Merlin)
    • Generic Good - Voting accuracy, team choosing accuracy
    • Merlin - Approved a known evil player on a team
    • Merlin - Got laked
    • Disapproved own proposed team, picked mission without yourself (or other information-gathering strategies)
  • Cross-game data (would require some form of login like https://avalongame.online/)
    • Your best/average voting and assassination accuracy
    • Win/Loss statistics - in general, as good, as evil, as specific roles, win/loss types
    • Most common roles you've played
    • How many games you've played
    • Which size games you play/win most often
  • Single-game data
    • Similar to cross-game data but just the info about the game that just finished
    • Did you win? lose? what was the ending method?
    • Your accuracy stats for this game, maybe compared to past averages
  • Badges
    • An achievement list for basic milestones and badges as you complete each one
    • Win as each role
    • Use certain strategies
    • Play a certain number of games
    • Play different sized games

Improve new user experience

Help people learn how to play the game and understand how the UI represents the game elements.

  • Add the basic game rules to the How to Play? tab in the drawer
  • Move the relevant rules for the current phase to the top / highlight them / hide the others in an expandable section
  • Indicate to new players when/where they should view their role info since that is not obvious
  • Highlight/animate the info icon when new info is available there
  • Make sure the rules mention how they relate to the UI things like hammer
  • Maybe add an optional walkthrough to point out all the relevant parts of the UI at the start

Name length limit

Add a length limit to the name input and ellipses to longer names when they would extend outside the player card or push it down

Add rules to sidebar

Basic game rules and THavalon rules

  • Clarify UI elements like hammer, king order, and lake
  • Only show the rules for the version you're playing, including specific version of lake, number of proposals, etc. selected by the host

Choose Your Own Role

Simulate the method we occasionally use to let players choose which role they claim, without letting others know who claimed which role.

  1. Assign everyone a random number/order (should probably be different from king order)
  2. Let the first person choose from all available roles in the game
  3. Let the next person choose from all remaining unclaimed roles (they can see which role is missing but should not know who had the number before them)
  4. Continue letting each person choose from the remaining roles until all roles have been claimed
  5. Start the game as normal, using the selected roles
    Note: Players should not discuss their order during the game (even vaguely), though they can privately use their knowledge

Thinking time tracker

No solid time limits but count waiting time like boardgamearena
Can just be implemented as a timer that counts up at the top of the page or in a corner so groups can have soft deadlines or just notice long discussions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.