CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.63k stars 4.18k forks source link

Nonpurifiable mutations can still be lost by targeted mutagen #52961

Closed Venera3 closed 2 years ago

Venera3 commented 2 years ago

Describe the bug

Despite setting purifiable: false traits can still be lost by targeted mutagens adding an incompatible trait.

Steps To Reproduce

  1. Mutate a non-purifiable trait with mutation incompatibilities (e.g. Proboscis)
  2. Choose an incompatible trait(e.g. Wide Mouth) and debug-add it, note that it removes your supposedly-permanent trait
  3. Re-add the non-purifiable trait and apply in enough serums of the target category to gain the incompatible trait

Expected behavior

Purifiability being checked in targeted mutations as well.

Screenshots

No response

Versions and configuration

Additional context

At a glance mutate() - used for non-targeted mutations - checks for purifiability, mutate_towards doesn't.

anoobindisguise commented 2 years ago

oh gosh, just realized this means I won't be able to turn Imperceptive Healer into 8 free points by mutating fast healer. that's scary! I like that certain effects that say they're "permanent" like Ectothermic will actually mean that now, irreversible changes are cool. Especially once mutations will stop being instantaneous now.

OmniscientQ commented 2 years ago

I can confirm this behavior. My post-Threshold slime mutant had Distributed Neurology, and took some Cephalopod serum. The Distributed Neurology was downgraded to "Smart" then upgraded again to "Very Smart".