somethiiing / appvalon Goto Github PK
View Code? Open in Web Editor NEWappvalon
appvalon
When a user creates a room, we should save their name and room name in localStorage like we do in join room, so the host can rejoin automatically too.
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?
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.
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.
Appearance:
Contents:
Should show 'Waiting for {num} player(s)', dropping the 's' when only waiting for 1 player
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
If there are no assassinateable roles in the game, there should be no assassination phase after good wins. This is most relevant for Merlin right now but should also account for Lovers and Nimue in future.
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
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.
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:
The first team proposal for a mission should say '1/5 attempts' not '0/5'
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
Display '2:00' not '2:0'
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.
Prevent people from inspecting and seeing secret game info
Definitely the ones from https://github.com/aquadrizzt/THavalon
Maybe some of the thavalon.com / https://github.com/Solomonz/THavalon roles
Some custom ones we might like to try (e.g. add versions of roles like Gwen and Gwaine and Arthur to vanilla avalon)
Also add the ability to assassinate THavalon assassinate-able roles.
Add the ability to publically claim your role (Arthur and Agravaine)
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:
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
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.
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.
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
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.
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
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)
Allow manual choosing of who starts with lake and whether to lake roles
Steps:
Prevent lake-backs:
Add a role-builder flow for users to create their own custom roles and save them to use in future games.
looks like the hammer is set to the last player in king order in handleHandleMissionResult, which is false in games that are not 5 player games
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:
Help people learn how to play the game and understand how the UI represents the game elements.
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
Basic game rules and THavalon rules
Simulate the method we occasionally use to let players choose which role they claim, without letting others know who claimed which role.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.