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.
Adds a specialist checkbox to the crafter stats display and one for each class in the stats edit window.
Toggling the checkbox adds/subtracts the stat bonus to/from each stat and enables/disables the specialist actions from being used by the solver. The stat and action selection changes are handled by the UI, i.e. specialist status is not passed to the solver to preserve the current functionality.
The action selection change is implemented as a kind of mask, meaning that the user selection of which of the specialist actions may be used are not forgotten when deselecting specialist. Additionally, in the stats edit window, the "Copy to all" button copies the base stats (without specialist bonus stats) to all other classes and not the specialist status.
Caveats:
CrafterConfig
crafter config struct can be deserialised from an older version without issue, a user must manually enable the specialist status for the relevant classes and readjust the stats after doing soThe addition of specialist checkboxes was previously requested and briefly discussed on the Discord server, with a tendentially negative evaluation on its usefulness when implemented in this way. I hope my way of implementing it, i.e. limiting the logic to the UI while keeping old functionality intact, alleviates most concerns with this approach. At the very least, this implementation can be used to test how this approach may effect the user's experience.
Preview:
specialist-checkbox-clip.mp4