Skip to content
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

[Magiclysm] Move bulk of spellcasting proficiency processing to dedicated EoCs and out of spell JSON (Animist/biomancer edition) #76160

Merged

Conversation

Standing-Storm
Copy link
Contributor

@Standing-Storm Standing-Storm commented Sep 3, 2024

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 for spellcasting_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.

@Standing-Storm Standing-Storm marked this pull request as draft September 3, 2024 02:39
@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. [JSON] Changes (can be) made in JSON Mods Issues related to mods or modding [C++] Changes (can be) made in C++. Previously named `Code` [Markdown] Markdown issues and PRs Mods: Magiclysm Anything to do with the Magiclysm mod Mechanics: Enchantments / Spells Enchantments and spells EOC: Effects On Condition Anything concerning Effects On Condition labels Sep 3, 2024
@github-actions github-actions bot requested a review from KorGgenT September 3, 2024 02:39
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Sep 3, 2024
@Standing-Storm Standing-Storm marked this pull request as ready for review September 4, 2024 01:47
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Sep 4, 2024
@Maleclypse Maleclypse merged commit 9633d7f into CleverRaven:master Sep 4, 2024
23 of 28 checks passed
@Standing-Storm Standing-Storm deleted the animist-biomancer-eoc-profs branch September 4, 2024 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` <Documentation> Design documents, internal info, guides and help. EOC: Effects On Condition Anything concerning Effects On Condition [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions [Markdown] Markdown issues and PRs Mechanics: Enchantments / Spells Enchantments and spells Mods: Magiclysm Anything to do with the Magiclysm mod Mods Issues related to mods or modding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants