veekun / pokedex

more than you ever wanted to know about Pokémon
MIT License
1.45k stars 635 forks source link

Missing evolution data for Galar forms #337

Closed magical closed 3 years ago

magical commented 3 years ago

Cursola should evolve from Corsola but it doesn't. There's no entry in pokemon_evolution, evolves_from_species_id is unset, and they have different evolution_chain_ids.

This seems to be true of all Galarian evolutions. (But not native Gen 8 pokemon, e.g. Milcrey -> Alcremie is fine)

@Parnassius

Parnassius commented 3 years ago

Huh, that's strange. I'll try to take a look

Parnassius commented 3 years ago

Ok, I missed every evolution from non-default forms. I fixed them here.

By dumping everything again I also found a couple missing evolution methods, mainly for alola forms. I'm not sure if I should keep them, since this would cause the site to show Ice Stone as an evolution method for Kantonian Vulpix => Kantonian Ninetales (pokemon_evolutions doesn't have a forme_id column). There's also a dusk evolution method for Lycanroc Dusk, but it breaks a CHECK constraint on pokemon_evolutions.pokemon_evolution_time_of_day.

The other thing I'm unsure about is how to name runerigus's evolution method. Bulbapedia lists it as "It evolves from Galarian Yamask when the player travels under the stone bridge in Dusty Bowl after Yamask takes at least 49 HP in damage (even if healed) without fainting. Taking damage from certain sources does not contribute to the 49 HP damage requirement such as self inflicted curse damage or weather effects."

magical commented 3 years ago

I'm not sure if I should keep them, since this would cause the site to show Ice Stone as an evolution method for Kantonian Vulpix => Kantonian Ninetales (pokemon_evolutions doesn't have a forme_id column).

I'd prefer to keep them. Yes, it's a bit confusing, but it's also confusing not to show them at all. Of course fixing the schema would be even better but. one thing at a time.

There's also a dusk evolution method for Lycanroc Dusk, but it breaks a CHECK constraint on pokemon_evolutions.pokemon_evolution_time_of_day.

I added dusk: https://github.com/veekun/pokedex/commit/ffd472491bd918c36f53841394feff492ef627c2

The other thing I'm unsure about is how to name runerigus's evolution method. Bulbapedia lists it as "It evolves from Galarian Yamask when the player travels under the stone bridge in Dusty Bowl after Yamask takes at least 49 HP in damage (even if healed) without fainting. Taking damage from certain sources does not contribute to the 49 HP damage requirement such as self inflicted curse damage or weather effects."

That's, uh... Wow. Just when you think they're starting to take it easy with the wacky evolution methods they hit you with this.

I'll probably summarize it as "Walk under the Dusty Bowl bridge after surviving 49 damage" on the site. But that goes elsewhere.

If you want to keep it terse, like method 4 "Shed", then maybe "Take damage"? (Although strictly speaking the trigger is just "walk", and "take damage" is a condition. "Go somewhere after taking damage"? idk).

Parnassius commented 3 years ago

I added dusk: ffd4724

That's great, thanks!

That's, uh... Wow. Just when you think they're starting to take it easy with the wacky evolution methods they hit you with this.

I'll probably summarize it as "Walk under the Dusty Bowl bridge after surviving 49 damage" on the site. But that goes elsewhere.

If you want to keep it terse, like method 4 "Shed", then maybe "Take damage"? (Although strictly speaking the trigger is just "walk", and "take damage" is a condition. "Go somewhere after taking damage"? idk).

I opted for take-damage as an identifier, and a slightly more descriptive Go somewhere after taking damage in the prose table.

magical commented 3 years ago

I guess we shouldn't feel too bad about missing these, because the official pokedex made the same mistake: https://github.com/PokeAPI/pokedex/issues/40#issue-842958271 😂