drago9773 / mge.tf

0 stars 0 forks source link

Match creation + management #24

Open joshuawn opened 1 month ago

joshuawn commented 1 month ago

Workflow as detailed on Discord. Depends upon the admin/moderator dashboard #19 & MGE game aggregation #23 functionalities.

joshuawn commented 1 month ago

Copied from Discord:

the website aggregates all games played in general.

there's a league section which shows historic league information & current league information. the current league information shows which players are scheduled to fight which other players (i.e. matches).

each league match has a discussion topic, like posts on a forum, for each player to communicate/coordinate their matches just like RGL.

the workflow for interacting with a match would be as follows: upon (admin/algorithmic) creation of a match, players have a box to enter in text & submit it (again, much like posting on a forum), a "(re)schedule match icon", and a "game submission icon".

each player can coordinate a datetime to play their game. as such, when someone clicks on the "schedule match icon", they navigate through a calendar of datetimes after the league season started & then hit accept. this automatically creates a post that "Player X wants to play at DATETIME". for the other player of the match, they see "ACCEPT" and "DECLINE" buttons on the side of this autogenerated post. both players can submit many pending datetime requests without waiting for one to be accepted/declined. DECLINE: it will automatically post on their behalf that they declined this datetime. ACCEPT: all other pending datetimes are cleared (but any previous text posts are kept), and the match will say "The match has been scheduled for DATETIME".

when a player clicks on the "reschedule match icon", calendar pops up like before, and once a datetime is accepted, an autogenerated post comes up saying "Player X wants to reschedule the match at NEW_DATETIME", and the other player can APPROVE/DECLINE the reschedule. either player can ask for a reschedule as many times as they want without blocking other features. DECLINE: an autogenerated reply is posted saying "Player Y has declined this rescheduling attempt". APPROVE: the match is reset, an autogenerated post states "The players have decided to reschedule the match at NEW_DATETIME".

otherwise, when a player clicks on the "game submission icon", a box comes up asking them to put in the number of their game (this could be an automated dropdown, filtered on games that both parties have played on the server, or it can be completely manual). the game must occur after the datetime the league was started. after they submit, an autogenerated post shows "Player X claims Game Y to be the finalized game" and the other player can ACCEPT/DECLINE. similarly, each player can post as many possible games as they want, but only one game can be ACCEPTED/DECLINED.

once both players have locked in that Game Y was the accepted game, any remaining pending games/reschedules are removed, and games/reschedules are locked. players each have an UPLOAD DEMO button. the match will show the demo uploading status of each player. each player can upload multiple files, and then hit FINALIZE to indicate everything was uploaded. once both players finalize, an admin is notified to check over the information and can APPROVE/DENY the match.

DENY: the post is unlocked & players are back to the previously mentioned step of rescheduling/submitting a game. APPROVE: the match is permanently locked and the win/loss from the accepted game is recorded for the league.

the admin can manually readjust who won/lost & who plays against who in the ongoing league. if an admin changes anything about a match result (point count and/or who won/lost), add a post to the corresponding match which says “THIS INFORMATION MAY BE DEPRECATED AS THE MATCH WAS MANUALLY MODIFIED BY AN ADMIN” & indicate in the league that the match result was overridden. if an admin changes who plays against who, a new match post is created for the corresponding players (and any old match also has the deprecation post/tag applied to it).