Refactor monsters to have a well-defined structure #1
+767,567
−254
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Previously we've been importing the monsters from JSON files using
json
and writing our app logic to accommodate the inconsistencies on the JSON data, but this is becoming unmanageable. I've introduced aMonster
class with a well-defined structure and some tooling to convert the JSON files to this. The conversion script is ugly as all hell and it gives me serious ark of the covenant vibes, but it means all that spaghetti is contained to one file and the rest of our code can be simpler and easier to read/maintain.I've also moved the backed code which manages monsters to the
dmtoolkit.api
sub-package to make it more consistent with the overarching organization of the app.Changes
dataclass
"models"api
packageMonster
modelTesting
At some point I'll have to make actual unit tests for these, but for now, I did some manual testing.
Monster
objects can be loaded