Skip to content

Fix TM/HM compatibility with randomized move types - #502

Merged
gerbiljames merged 1 commit into
gerbiljames:pokecrystal-developfrom
sdwoodard:fix/crystal-tmhm-generated-move-types
Oct 16, 2026
Merged

gerbiljames merged 1 commit into
gerbiljames:pokecrystal-developfrom
sdwoodard:fix/crystal-tmhm-generated-move-types

Conversation

@sdwoodard

Copy link
Copy Markdown

Move type randomization updates the generated moves, but HMs, unchanged TMs, and reserved TMs such as Headbutt and Rock Smash can retain their original type in the TM/HM record. Compatibility reads that cached type, which can select the wrong same-type or other-type percentage.

For example, if Surf becomes FIRE, a WATER Pokémon is incorrectly allowed to learn it with same-type compatibility at 100% and other-type compatibility at 0%. A FIRE Pokémon is incorrectly rejected.

Resolve the type from the generated move assigned to each TM/HM instead. Compatibility then follows the move’s effective type while retaining the existing vanilla fallback and HM overrides.

Validated that TM/HM compatibility follows the generated move types across the affected configurations. The full Crystal test suite also passed during validation.

@gerbiljames

Copy link
Copy Markdown
Owner

Thank you!

@gerbiljames
gerbiljames merged commit 2861e55 into gerbiljames:pokecrystal-develop Oct 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants