Skip to content

Releases: EllieTellie/CompanionLibrary

v0.4-alpha

08 Dec 21:17
Compare
Choose a tag to compare
v0.4-alpha Pre-release
Pre-release

In this release we have major improvements to the writing and detecting of the rosters. This now allows them to be read by BattleScribe.
Next release will focus on more Condition and Modifier implementation and there will be a roster importer tool in the very near future that should allow people to import rosters from plain text into BattleScribe directly.

Main Improvements:

  • Rosters that are detected and written out are now compatible and can be loaded with BattleScribe.
  • Roster detection has vastly improved.

Changes in this release:

  • Switched roster writing to UTF8 without BOM like BS writes them out. Note: names are not HTML encoded like BS rosters.
  • Entry Id and Entry Group Id can now be reliably generated from a NeedleStack/Needle which contains the path to the SelectionEntry. Examples in RosterReader/AbstractRosterReader.
  • Roster detection now applies Modifiers at the end and can handle Conditions and ConditionGroups. Note: modifier and condition support has still a few unimplemented types.
  • Roster detection can now swap selection entries if the order they are read in is not correct. It finds any empty selection groups to swap an existing entry to.
  • Roster detection now adds automatically included entries like for example if exported using minimal output.
  • Roster detection now has improved cost detection which is far more accurate.
  • All XmlData classes now have a parent field and a GetParent() method all the way up to Roster/Catalogue/GameSystem.
  • Added enums in Data/Enums which are based on the schema information. For example see: ConditionType and ConditionTypeConverter.Get() for usage.
  • Added GuidGenerator, IGuidGenerator as a wrapper to generate guids and added a short guid generator similar to most guids in BS.
  • Added ITransformable interface and allow some classes to be transformed although not completely implemented for all classes.
  • Created RootContainer and made Roster extend RootContainer. RootContainer now holds GameSystemGroup.
  • Added search method that takes a Predicate for name searching to allow for partial matches.
  • Added SystemManager.GetActiveGameSystemGroup() for convenience.

If people have any suggestions or feedback let me know.

Binaries built in release targeting .NET standard 2.0

v0.3-alpha

29 Jul 16:19
Compare
Choose a tag to compare
v0.3-alpha Pre-release
Pre-release

It's been a while since I provided update binaries, so here they are. There'll be some changes that didn't make the changelog, so be sure to check the commit logs for more details.

New in this release:

  • Added code examples in the Examples/ folder as a Visual Studio console application.
  • Fixed lots of missing fields which the schema work highlighted.
  • Added XmlDataSchema to collect schema information and compile it.
  • Improved roster detection. There is still plenty of bugs in the roster detection, but it should be more accurate.
  • Moved all destructive operations out of the roster parsing. Moved to Roster.MergeSelections() and Selection.SortCategories() respectively for front end work. It should now parse more or less as-is.
  • Added experimental support for saving rosters. This is only partially implemented so far.
  • Speed up catalogue and game system reading by about 10% by parsing the Xml straight from the file stream.
  • Provide way to report download progress (for UI for example) from update processes. Added RepositoryUpdate class for listening to download progress during updates.
  • Added more logging to failing http requests.
  • Added way to output repository class back to json.
  • Fixed some issues which could cause the loading progress to stall when loading the GameSystem.
  • Added Catalogue.GetVersionInfo(path) and GameSystem.GetVersionInfo(path) to retrieve version information without having to parse the whole file.
  • Added GetDataNameSafe() to DataIndexEntry class to get name without invalid file path characters.
  • Added GetDataIndex() to RepositoryData class.
  • Added HasValidCosts() to Roster class.
  • Added RemoveRoster(), GetRostersByGameSystem() to RosterManager class.
  • Added GetAllProfiles() to Selection class which can recursively find profiles.

Binaries built in release targeting .NET standard 2.0

v0.2-alpha

22 Dec 18:21
Compare
Choose a tag to compare
v0.2-alpha Pre-release
Pre-release

This release has added support for updating the game systems from any Battle Scribe Data repository. It only updates files that are missing or out of date and has very basic file validation.

  • Added support for updating from Battle Scribe Data repository indexes.
  • Roster parsing support is now considerably faster.
  • Unique Ids are now cached in GameSystem and Catalogue.
  • Added progress reporting when loading Game System through the SystemManager.
  • Loading Game System and catalogues through the SystemManager can now load multi threaded.
  • Depends on LitJson.dll (included in release binaries).

Binaries built in release targeting .NET standard 2.0
Some method calls may have changed slightly in the manager classes between 0.1 and 0.2.

v0.1-alpha

29 Nov 17:04
1ff7763
Compare
Choose a tag to compare
v0.1-alpha Pre-release
Pre-release

Binaries built in release targeting .NET standard 2.0