- Reworked tournament lifecycle so that DefaultTournament is able to refresh its definitions from the database rather than requiring it be destroyed and recreated.
- Refactored tournament service functions to use "record" and "retrieve" to label functions that are strictly wrappers to the database.
- Fixed server cache clear causing in-progress tournaments to duplicate their active tables.
- Fixed Paused tournament status not actually working due to above issues.
- Added admin panel forms for creating Scheduled Tournaments and altering the current status of a given tournament.
- Fixed league opponent win % stat not being set.
- Fixed tournaments crashing due to bad standings calculations after round 1
- Fixed the modified median standings producer to now properly calculate median and cumulative scores, and properly tiebreak between all tiebreaker methods.
- Overhauled the tournament display screen to show all the tiebreaker methods, and to include a link to the report generator so I don't have to remember the damn URL.
- Added a hall pop-up whenever tournament updates are received, only for players who have joined a tournament.
- Leagues now read parameters from json instead of inscrutible csv values.
- Overhauled league admin page
- Added max games per player option to the league admin UI.
- Added ability to make leagues invite-only. Also added new section for league admins to add players manually to a league.
- Added description field to all leagues, which displays on the main event tab. This will need to be reworked into markdown later, but for now it is html.
- Extracted tournament-related admin functions into its own Tournament Admin page.
- Added preliminary support for PC league awards, but this is incomplete and has been hidden in the UI for now.
- Added modified median tiebreaker sorting for tournaments.
- Lots and lots of technical overhauls spilling over from these improvements on the backend.
- Added ability for constructed leagues to have a custom top X placement / Y game participation prize
- Overhauled constructed league interface so that both preview + creation use the same validation
- Overhauled constructed league admin page section
- Added testing for custom prizes allocation
- Have not yet figured out exactly how to test real-world league ending causing the correct rewards to go out.
- Adding auto-zoom on hover, a long-requested feature. While active, a preview of each card under the mouse is displayed.
- Adding a toggle button in the upper right of chat for disabling the hover behavior. The state of this toggle is stored to a cookie, so those who don't like it can disable it once and leave it off.
- The auto-zoom functionality is isolated into its own file for (hopefully) use with the deckbuilder