feat(balance): Targeted Mutations Respect New Mutation System#8510
feat(balance): Targeted Mutations Respect New Mutation System#8510AzmodiusX wants to merge 9 commits intocataclysmbn:mainfrom
Conversation
|
Autofix has formatted code style violation in this PR. I edit commits locally (e.g: git, github desktop) and want to keep autofix
I do not want the automated commit
If you don't do this, your following commits will be based on the old commit, and cause MERGE CONFLICT. |
|
I don't know how you want to handle this serum that apparently adds new mutations, for free, that are meant to bypass the point limit. |
I'm guessing it's something I'd have to special-case in but I uh...not sure the best method for that... |
|
If you simply made the mutations ignore the system, other mutations could just override them. |
|
Ah right, hmm. I'm uh...not sure how best to handle this, bleh. I'm really reluctant to approve this just yet, because it breaks multiple mods in ways I have zero real workaround for, plus I'd want to test To be honest, when I mused on this idea and added it to my list, I was actually thinking that the better approach would be for it to try to pick positive or negative based on point target value, but if it can't mutate closer towards the target then pick one at random as a fallback behavior. That method would not only mean no changes need to be made to mutations in mods that're balanced differently, but also means that this mechanic won't cause any potential unfinished dead-end situations for categories that might not have a wide range of options or are known to have trouble crossing thresholds. |
|
To be clear, based on the structure of the code and comments and documentation: |
|
Hmm. That's...a problem, because this also means it completely precludes being able to structure a mutation category where every mutation is mixed effect and tied together, without either making them negative points or making some traits arbitrarily negative. Gwuh |
|
No it... doesn't? |
|
I'm not trying to be adversarial here or anything. I want your use case to work out too. I'd rather it not block us from making mutations balance-able. |
|
I guess I'll test again now that the bug has been fixed and see if it works better now, it's just I don't now what JSON changes would need to be made to prevent this from breaking other things. |


Purpose of change (The Why)
When not using the legacy mod, random mutations use the new system for mutations that skews the points towards a trend value. The problem is that targeted mutations do not do this.
Describe the solution (The How)
Implement the functionality for targeted mutations.
Handle the extreme cases
Add a new option that exposes the hard-coded direction bias.
I also tried making the code easier to read, specifically the part that handles the legacy path.
Testing
The extreme values seem to work correctly.
Passes the vibe check.
I wrote a test, it passes. We'll see how prescient that is.