CleverRaven / CleverRaven/Cataclysm-DDA

Mutate_towards doesn't respect limits on mutation type nor on Cancels.

Open
#80,294 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

(S2 - Confirmed) EOC: Effects On Condition Mutations / Traits / Professions/ Hobbies
Dominant language
C++
Stars
13.2k
Forks
4.6k
Avg merge
2d 1h
Merged PRs (30d)
205

Description

Describe the bug

Mutate Towards claims it respects all restrictions on gaining a mutation such as cancels and pre-reqs. However it does not respect limits on type. So you cna have multiple hand,arm or leg mutations at once.

Attach save file

Xedra Evolved Gracken-trimmed.tar.gz

Steps to reproduce

Start as Gracken in XE. Spawn hand or leg based gracken improvements. Activate them. Notice that you now have multiple arm, leg, hand type mutations.

Expected behavior

New mutations of same type replace old mutations of same type

Screenshots

Image

Versions and configuration
  • OS: Windows
    • OS Version: 10.0.22631.5039 (23H2)
  • Game Version: cdda-experimental-2025-03-23-1452-2-g1125be492c [64-bit]
  • Graphics Version: Tiles
  • Game Language: System language []
  • Mods loaded: [
    Dark Days Ahead [dda],
    Disable NPC Needs [no_npc_food],
    Portal Storms Ignore NPCs [personal_portal_storms],
    Slowdown Fungal Growth [no_fungal_growth],
    Xedra Evolved [xedra_evolved]
    ]
Additional context

Further testing shows that cancels doesn't work either

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Load the Xedra Evolved Gracken-trimmed.tar.gz save and reproduce the issue by activating hand- or leg-based Gracken improvements. Start at the Mutate Towards entry point and trace how mutation type limits and cancels are checked. Done means new mutations replace existing mutations of the same type and cancellation restrictions are respected.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.