- 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
- Adding new screen during bidding that reminds players of the current settings, to be courteous, and to concede.
- Pre-game screen shows the player's deck, deck notes, and links to the deck so players can refresh their memory
- Moved deck sharing URL generation to the LotroDeck, so that it can be used within the pre-game screen
- Maps are shown during the pre-game screen if the format uses them
- Altered the game process so that the first step primes the pre-game screen info
- Added playing of both player's Map cards before the first site is placed down.
- Updating all dependencies to their latest non-beta versions
(except for junit, as junit 5 is significantly different from junit4)
- Converted the log4j configuration as the XML format changed. Switched the rolling appenders to random access rolling appenders and turned on asynchronous logging, as this is supposed to be dramatically faster in all cases.
- Altered some DB POJO classes whose field names did not match exactly, as fastjson is now more strict about capitalization
- Altered JSON deserialization of arrays to use modern APIs which are much more readable
- Minor improvements to the Docker setup, including automatic working directory movement