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

remove chance of removing mutations from other trees #60218

Conversation

anoobindisguise
Copy link
Contributor

@anoobindisguise anoobindisguise commented Aug 16, 2022

Summary

Balance "mutations don't remove mutations from other trees unless they would conflict"

Purpose of change

Fixes #60126
TLDR: There are a lot of barriers in place already to hybridizing mutation trees in place already and there doesn't need to be an additional 25% chance per mutation out of the tree of mutation line you are currently mutating to be removed automatically.

Describe the solution

Remove entirely. Leave standard mutation conflicts, instability and mutation costliness as barriers to hybridizing the tree.

Describe alternatives you've considered

none tbh. I feel strongly about this

Testing

  1. Spawned new character.
  2. Injected with Feline Mutagen.
  3. Turned partially into a cat with no issues.
  4. Injected with Cephalopod Mutagen.
  5. Started to turn into a squid. Didn't lose any of my Feline mutations except when Cephalopod wanted to override them (my Retractable Claws turned into regular claws as part of gaining tentacle arms, my fur turned into rough skin so it could become a shell, but my cat ears didn't ever go away because Cephalopod doesn't counter those)
  6. Injected myself with Purifier and purified back to baseline. No errors or crashes.

Additional context

@github-actions github-actions bot added Game: Balance Balancing of (existing) in-game features. [C++] Changes (can be) made in C++. Previously named `Code` labels Aug 16, 2022
@bombasticSlacks
Copy link
Contributor

I think that this is reasonable.

HOWEVER I would ask the question does this exist so that human mutagen clears your mutations. Like without this does purifier break.

@anoobindisguise
Copy link
Contributor Author

I think that this is reasonable.

HOWEVER I would ask the question does this exist so that human mutagen clears your mutations. Like without this does purifier break.

I believe purifier should still work. It tries to mutate you towards specific hidden mutations that remove your existing ones. And it worked before the 1/4 chance to remove cross-tree muts was added, as there was a time where that wasn't the case under the new system. However it definitely bears testing first.

@github-actions github-actions bot added astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Aug 16, 2022
@actually-a-cat
Copy link
Contributor

        } else {
            // Remove existing mutations that don't fit into our category
            if( !downgrades.empty() ) {
                size_t roll = rng( 0, downgrades.size() + 4 );
                if( roll < downgrades.size() ) {
                    remove_mutation( downgrades[roll] );
                    return;
                }
            }

This bit also needs to go.

@anoobindisguise
Copy link
Contributor Author

        } else {
            // Remove existing mutations that don't fit into our category
            if( !downgrades.empty() ) {
                size_t roll = rng( 0, downgrades.size() + 4 );
                if( roll < downgrades.size() ) {
                    remove_mutation( downgrades[roll] );
                    return;
                }
            }

This bit also needs to go.

good catch, thank you.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Aug 16, 2022
@anoobindisguise
Copy link
Contributor Author

earlier today I did test this in game and left my notes in the testing section of the PR, it's functional and I didn't find any errors or weirdness.

@bombasticSlacks bombasticSlacks merged commit 5235d18 into CleverRaven:master Aug 20, 2022
@NetSysFire NetSysFire added the Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies label Aug 20, 2022
Hirmuolio pushed a commit to Hirmuolio/Cataclysm-DDA that referenced this pull request Aug 27, 2022
* remove chance of removing mutations from other trees

* Update mutation.cpp
@anoobindisguise anoobindisguise deleted the anoobindisguise-cross-mutations branch October 14, 2022 19:52
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` Game: Balance Balancing of (existing) in-game features. json-styled JSON lint passed, label assigned by github actions Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mutation trees should not be mutually exclusive
4 participants