[Magiclysm] Move bulk of spellcasting proficiency processing to dedicated EoCs and out of spell JSON (Animist/biomancer edition) #76160
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
Mods "[Magiclysm] Move bulk of spellcasting proficiency processing to dedicated EoCs and out of spell JSON (Animist/biomancer edition)"
Purpose of change
Proficiencies are a desired edition and it makes sense to apply them to Magiclysm, but the implementation of proficiencies made the spell JSON very complicated to read and evaluate, raised the barrier for contribution of new spells, and duplicated something many times when it could be centralized in a single place.
Describe the solution
Remove all jmath calculations from the spells themselves and centralize them in a series of EoCs. Introduce a series of spell flags (
CHANNELING_SPELL
,ENHANCEMENT_SPELL
, and so on) that those EoCs can key off of to run, and then place the calculations for proficiency bonuses into those EoCs. Standarize these bonuses at 10% per proficiency, or 30% total. Add one extra proficiency and keyword to cover debuff spells, a category not well-covered by previous proficiencies, called Enervation.The spells still require an
extra_effect
to trigger the EoCs that grant the proficiency XP. Once it's possible forspellcasting_finish
EoCs to only trigger on particular spell flags, those can be removed as well.Describe alternatives you've considered
Testing
Proficiencies improve spells the appropriate amount and spells display what spell categorization they are in the UI.
Additional context
Most of the spell JSON was unchanged after the introduction of proficiencies, which means that gaining the proficiencies is a flat buff to a Magiclysm character's power. The spells could probably do with an audit to make sure that a master wizard with multiple spell proficiencies is not overpowering the system.
Looking through all these spells has convinced me that there's probably a good argument to be made for Healing and Shapeshifting proficiencies as well--I'll probably implement those after I go through and edit all the schools.