- Ripped out all old DB operations that interacted with the blob collection column. That column is now inert.
- Added support for the new collection db system to all systems that interact with it
- Added subscription support for definition refreshes
- Collections Manager overhauled to only record changes to collections on the items that need it (rather than overwriting the entire collection on every change)
Also removed the last Hobbit culture buttons; relics from a forgotten time when all Hobbit cultures were just lumped under Gundabad. In a future update (tm), all Hobbit cultures should appear in their own row after the LotR cultures if any of the set/format filters for The Hobbit Draft Game are selected.
- Associated all of the new sealed products with default booster and starter selection images
- Added id field to sealed league definitions which is now how all systems store and refer to unique sealed leagues
- Renamed various product choice products to use a more standardized naming convention
- Fixed the chat resizer being all wonky
- Fixed deckbuilder navigation buttons being wonky from the jquery upgrade
- Rearranged the card filter slightly to almost sorta do css
- Fixed deckbuilder not using the new gemp favicon
- Sealed events are now no longer hard-coded as 4 serie, but will instead be however many are defined in the definition
- Altered format serialization to include information on draft + sealed (optionally)
- Fixed various dialog boxes having an erroneous "closed" text in them
- reordered format canonical order due to an oversight
- Altered the league admin page to dynamically populate all drop downs with all available values (instead of hard-coding them)
- Got the new jquery to stop coloring buttons white
- fixed modal dialogs being under the overlay
- fixed modal dialogs having a mangled close button
- Removed excess unnecessary hard-coded button classes
- added favicon and updated the title of each page
- added resize handle to the chat; it's a bit wonky
- Rearranged server startup
- Added constructor overloads for as many classes as possible to ensure that the file path does not need provided by default for loaded data
- Format, draft, and sealed data now hot reloads
- Altered so much stuff relating to league data
- Sealed formats now 100% load from file
- altered sealed format DAO to save the name of a format instead of its sealed-code (included a backwards-compatible legacy map)
- Converted all existing pack definitions (including code-defined ones) to use new hjson definitions
- Created ProductLibrary to replace PacksStorage
- Created a hundred unit tests to confirm that the PL packs are the same as the PS packs
- Replaced all references to PacksStorage with ProductLibrary
- Absorbed CardSets into the CardBlueprintLibrary
- Adjusted library initialization to take filenames during the constructor and immediately initializing, instead of waiting for that for every single instance.
- Changed the library CountDownLatch to use a Semophore instead.
- Adjusted library to be able to hot reload the blueprint mapping and setconfig files (this is not exposed to an endpoint yet)
- Adjusted all public-facing functions of the blueprint library to block if in use
- As a result, reloading should now cause all operations that use the library to pause during the reload
- Added server-wide messages when card reload is invoked
- Fixed chat messages to make all URLs open in a new tab
- Set up the loading of draft files to use the shared functionality in AppConfig
- Enabled draft definition hot reload
- Refactored various draft system files to be static
- Fixed the hobbit draft tests needing to be invoked manually
- Moved all text files that are loaded at runtime to gemp-lotr-cards/src/main/resources
- Updated ApplicationConfiguration (renamed AppConfig) to handle finding text data files based on configuration
- Updated gemp-lotr.properties to contain dev and test versions of the resource path (used for in-IDE execution and JUnit execution, respectively)
- Updated all references to text files to go through AppConfig