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

Made mutation categories actually matter. #1316

Merged

Conversation

Projects
None yet
4 participants
@PhilippGrosenick
Copy link
Contributor

commented Jun 1, 2013

Makes the primary mutation category have significant influence. Traits from
other categories have a high chance of being removed and traits from the primary a higher chance of appearing. It is now very difficult to end up with every single trait in the entire game just because you stand around in a sarcophagus for a day.

Made mutation categories actually matter.
The primary mutation category now has significant influence. Traits from
other categories have a high chance of being removed. It is now very
difficult to end up with every single trait in the entire game.
@i2amroy

This comment has been minimized.

Copy link
Member

commented Jun 1, 2013

I like this idea. Making categories actually matter sounds like a good idea to me, and it opens up the game to a little more diversification with mutation categories now that they are having an actual effect.

@KA101

This comment has been minimized.

Copy link
Contributor

commented Jun 1, 2013

Uh, mutation isn't that cut & dried, I should think. Mutation categories should be important--true--but without any way to observe or affect* one's category outside of the mutation process itself, ganking mutations because they're not-in-category seems overly harsh.

(What about "generic" mutations, for instance? Must I lose, say, Pain Recovery just because its tree isn't categorized? If so, that also affects Disintegration, I trust?)

*I've tried hanging around a Rat King until I mutated. Pulling your's category toward "Rat" requires losing lunch, breakfast, last night's dinner, and probably your emergency snack too--it's not at all a viable solution, even if you'd actually want to be a rat.

@i2amroy

This comment has been minimized.

Copy link
Member

commented Jun 1, 2013

A potential fix for the generic mutations would be the simple addition of more categories to the game, fairly easy to do I would think.

You do have a point that it might be overly harsh on non-category mutations though maybe a change so instead of a 50% chance to remove what if it was dropped to 20%-25%? That would still give categories some control over where mutation is going, but not to the point of solely dictating where a person is and still allowing for potential switching of categories (especially if more inter-relating mutation categories are defined).

@KA101

This comment has been minimized.

Copy link
Contributor

commented Jun 1, 2013

One thing I'd like to see would be categorized mutagens, probably at Cooking 9 to be equivalent with Purifier (the "Human" mutagen, IMO). To be clear: this would supplement the current "generic" Mutagen, not replace it. Targeting the result requires more skill, specialized ingredients, and possibly creates less of an effect (one mutation rather than up-to-three).

With the current code, I'd imagine something like using Tainted Plant Marrow could create Mutagen-Plant. (Unfortunately, zeds are Tainted Meat, not Tainted Human Meat, IIRC.) Ideally, using critter-meat could let players pull their category toward that of the critter.

@PhilippGrosenick

This comment has been minimized.

Copy link
Contributor Author

commented Jun 1, 2013

Currently there is a 50% chance to either update an existing mutation or remove an out of category mutation (including the general mutations). Overall that makes it a 25% chance of removing an existing out of category trait per mutation. The removal might still be a bit harsh, but that is easily changed. Overall I found that it provided enough flexibility to allow spontaneously changing categories when chugging down to many mutators. After that the old traits would then disappear over time (or not), depending on further mutagens and chance.

Edit:
I actually quite like @KA101 idea. Not only would it give high-level characters more to do (collecting indrigents, hunting the monsters) but a tiny bit of control over otherwise completely random mutations. Perhaps I'll give it a try.

In general I feel mutagens and purefiers should be harder to aquire. Currently you can take robust genetics, go to a sarcophagus for a few days and come back insanely strong, intelligent, dexterious and aware having seen every single mutation the game has to offer.

@i2amroy

This comment has been minimized.

Copy link
Member

commented Jun 1, 2013

I agree, multiple types of mutagen would be nice.

Your 50%/25% isn't quite right though. The actual chance of losing a mutation with your code is .5*([number of downgrades]/[number of downgrades + 4]). Or in other words, 50% of the times when you currently mutate in-category will instead become losses of other categories (not counting times when a mutation is removed while mutating towards another).

@PhilippGrosenick

This comment has been minimized.

Copy link
Contributor Author

commented Jun 1, 2013

Line 114 if(one_in(2)) decides if there is to be a preliminary round (50%), in which eiter a mutation is upgraded (50%) or removed (50%). Since the preliminary check only happens in half of the cases and mutations are only removed in half of those cases, its 25%. It can be a bit difficult to see in the diff, best go for the whole file view. Possibly could have used a better indention too, oh well.

@i2amroy

This comment has been minimized.

Copy link
Member

commented Jun 1, 2013

That particular 'if' closes on line 126, halfway through your "preliminary round". If you wanted a 50% chance to do a preliminary round then you actually want to do (starts on line 114):

    if(one_in(2))
    {
        if(one_in(2))
        {
            upgrade stuff goes here
        }
        else
        {
            downgrade stuff goes here
        }
    } (line 136ish)
@PhilippGrosenick

This comment has been minimized.

Copy link
Contributor Author

commented Jun 1, 2013

Sorry, I fear I haven't explained well (or right for that matter). You see I had changed it a couple of times until I got results I was happy with. The last implementation had slipped my mind, apparently.

You are right of course, but there is another ranom roll in line 118. That means there is a 50% chance of trying to remove a trait and then there is another roll that gets more likely the more out-of-category mutations there are. Those two combined means there is a meager 8% chance of removing a out of category trait when there is only one and a 33% chance when there are 10 mutations out of category.

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

Sorry again for the mixup. Its kind of late over here.

@PhilippGrosenick

This comment has been minimized.

Copy link
Contributor Author

commented Jun 1, 2013

I implemented @KA101 suggestion about the mutagens. It can be found #1321 here.

@kevingranade kevingranade merged commit cdc6107 into CleverRaven:master Jun 9, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.