-
Notifications
You must be signed in to change notification settings - Fork 2
Passive Skill Tree Support #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…tions JSON Added Json classes for both the base passive tree as well as the options that go along with it.
Fixed a build issue Commented out generic deserialization test for Passive Tree
Addd a Convert method to PassiveTreeDefinition that takes in the JsonPassiveTree class Addd a Convert method to PassiveNodeDefinition that takes in the JsonPassiveNode class
Fixed the last commit not compiling
Adding Tests for Calculated Properties for PassiveTree.Base classes Added JsonPassiveTreePosition class to consolidate position calculation and properties Fixed an issue with how JsonPassiveNode was calculating Position
Added MaxImageZoomLevel and associated tests Added a position reset when the ZoomLevel changes on JsonPassiveTreePosition
Added BasePassiveTreeURI to JsonPassiveTree
Added PassiveTreeBuildUrlData class with Encode/Decode capabilities for web-safe official urls Added a ClearPositionCache to JsonPassiveTreePosition in order to accommodate for nodes that change position (Ascendancy Class Groups specifically) Added tests for ClearPositionCache Added some tests for JsonPassiveNode Convert to NodeDefinition Removed ability to set on most collections in on JsonPassive objects Fixed a parsing issue with JsonPassiveTreeOptions not parsing a list of JsonJewelHighlight
Added Tests for calculated properties in GameModel.PassiveTree.Options (JsonJewelHighlight, JsonAscendancyClassOption) Updated property names in JsonJewelHighlight to better reflect what is actually being done Fixed an issue with colour parsing in JsonAscendancyClassOption.FlavourTextColour
|
I've skimmed over everything and it looks fine in general. Will give it a more detailed look tomorrow. I like the route you went with PassiveTree/NodeDefinition and the deserialization. Means that the current usage can stay as lightweight as it is, while the app itself can use the same deserialization output. With the new format, the "Opts" of the old format will be obsolete, right? Just a JsonPassiveTree that contains everything. One thing GGG didn't include in the data released before the patch is the |
|
Yeah, the Opts file will be obsolete. We can keep the loading if we want to load the ascendancy classes and move them into the new format. Would be fairly easy (they are nearly identical). The |
…pansionJewelSocket to better fit the new naming convention.
…present the property
PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreePosition.cs
Outdated
Show resolved
Hide resolved
PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveNode.cs
Outdated
Show resolved
Hide resolved
PoESkillTree.Engine.GameModel.Tests/PassiveTree/Base/JsonPassiveNodeTest.cs
Show resolved
Hide resolved
PoESkillTree.Engine.GameModel.Tests/PassiveTree/PassiveTreeDeserializationTest.cs
Outdated
Show resolved
Hide resolved
…Definition. Removed useless virtual keyword on JsonPassiveTreePosition Properties
….Engine.GameModel.IntegrationTests
…Level wasn't being passed in.
PoESkillTree.Engine.GameModel/PassiveTree/PassiveNodeDefinition.cs
Outdated
Show resolved
Hide resolved
…finition will always be at Zoom Level 1f.
This provides all the models and necessary converters in order to parse the Passive Skill Tree JSON data. This is fully backwards compatible with all of the old JSON formats. It also provides a basic url encoder/decoder which correctly supports version 3 and 4.
This is a fairly large pull request, but I wanted to get it all in one go. I can add more tests to areas we think need them as well.