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

Make metabolic mutations more interesting #21524

Merged

Conversation

Projects
None yet
4 participants
@Coolthulhu
Copy link
Contributor

commented Jul 31, 2017

Changed two really bad mutation lines into something worth considering keeping:
Fast metabolism mutation line gains a boost to stamina regeneration:

Metabolism Bonus stamina regen
Fast 10%
V. Fast 30%
Extreme 50%

This bonus is applied even during "winded" effect, unlike regular human stamina regeneration.
However it does not skip penalties for mouth encumbrance - can't really fuel that super metabolism without oxygen. This sets it apart from the bionic, which works regardless of masks.


Cold blooded line gains low metabolism. After all, not maintaining body temperature means less work to stay alive.
The lowest level cold blooded becomes as effective as Light Eater (33% less food). All above it become even better: 50%.


Also some minor, moderately related changes:

  • Prevented application of Winded status for characters above 50% stamina. It was kind of jarring to see characters become winded after taking 2-3 steps.
  • High thirst mutation line becomes less rewarding in points. Water is plentiful, it literally falls from the sky.
  • Recycler bionic stops working as well with mutations. It was made with normal humans in mind, not hyper-metabolic mutants. It stops scaling with high metabolism and stops stacking with slow metabolism.
thirst_rate = std::min( thirst_rate, std::max( 0.5f, thirst_rate * 0.5f ) );
// Recycler won't help much with mutant metabolism - it is indended for human one
hunger_rate = std::min( hunger_rate, std::max( 0.5f, hunger_rate - 0.5f ) );
thirst_rate = std::min( thirst_rate, std::max( 0.5f, thirst_rate - 0.5f ) );

This comment has been minimized.

Copy link
@codemime

codemime Aug 2, 2017

Member

Could be replaced with clamp() from cata_utility.h.

This comment has been minimized.

Copy link
@Coolthulhu

Coolthulhu Aug 4, 2017

Author Contributor

The problem is, the maximum value changes too.
Clamp expects min <= max, which can't be guaranteed here: hunger_rate - 0.5 can be above or below 0.5.

@Coolthulhu Coolthulhu changed the title [CR]Make metabolic mutations more interesting Make metabolic mutations more interesting Aug 4, 2017

@Rivet-the-Zombie Rivet-the-Zombie merged commit beeff69 into CleverRaven:master Aug 5, 2017

3 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
coverage/coveralls Coverage decreased (-0.02%) to 22.813%
Details
gorgon-ghprb Build finished.
Details
// But mouth encumberance interferes.
stamina_recovery += std::max( 1.0f, 10.0f - ( encumb( bp_mouth ) / 10.0f ) );
// Mutated stamina works even when winded
float stamina_multiplier = ( !has_effect( effect_winded ) ? 1.0f : 0.0f ) +

This comment has been minimized.

Copy link
@BevapDin

BevapDin Sep 15, 2017

Contributor

This ternary with the negated condition is slightly confusing. It would be cleared without the negation (and inverted results) as has_effect() ? 0 : 1.

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.