veekun / pokedex

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

Zygarde 10% Forme with Aura Break is missing #231

Closed jpirnat closed 3 years ago

jpirnat commented 6 years ago

Both 50% Zygarde and 10% Zygarde can have the abilities Aura Break and Power Construct. In the games' coding, each of those 4 combinations is a distinct Zygarde form.

Veekun is missing the 10% Aura Break form.

venustoise commented 6 years ago

It's true, I noted it long time ago, but I've an open question, is it a good idea add a "new Pokémon" (with nearly duplicate pages on the website) for minor differences like just a different ability (Greninja, Zygarde, and now Rockruff) or, worse, 7+7 Minior, or the six SuMo Cap Pikachu? Maybe merging the firsts abilities in one single form with 1st+2nd ability plus an explanation note, and use pseudo-default forms like red Minior and orig. Cap Pikachu as major forms and the others as minor forms like purely aesthetic ones?

jpirnat commented 6 years ago

I'm not eevee but here are my opinions on those questions since I've thought about them long and hard for my own dex database

For the "ability forms" (Greninja, Zygarde, Rockruff), you would still have to keep track of the fact that the special forms' abilities and the normal forms' abilities are separate lists - i.e., you can't use an Ability Capsule to change Greninja's Torrent or Protean into Battle Bond, or vice versa. In theory the special abilities could be listed as hidden abilities in a purely imaginary ability slot #4, but that implies things about breeding mechanics that might not be true.

In Greninja's case, the Battle Bond variant is always male and is in the Undiscovered egg group (more data which is incorrect on veekun, now that I thought to check it), so now it has 3 attributes that differentiate it from the standard variant, which can all easily be tracked by creating two Pokémon variants within the Greninja species (when considering the hierarchy of species -> functional forms -> cosmetic forms)

As for Minior, it's a species with 2 functional forms, each of which has 7 cosmetic forms. But despite all the Meteor forms looking the same, they have the very important difference that they can each only transform into a specific Core form.

Cap Pikachu can be a single functional form with (how many is it now, 6? 7?) cosmetic forms. But they do need to be a different functional form than standard Pikachu, because they are always male and not breedable.

For the most part I think veekun's species-Pokémon-form relational model got it right. As time passes some data will need to be moved up or down a level (for example, if height started varying between cosmetic forms in a future generation) but that's to be expected. It may not be the prettiest to look at, say, a list of gen 7 Pokémon and see 14 Miniors, but that's more a problem with search result parsing than with the data itself.

route1rodent commented 6 years ago

I would consider Pokemon with those special abilities that they are a new form, because it's not only the ability that changes as you can see, so there can't just be a "slot 4".

About Cap Pikachus, appart from not being breadable it also has a special Z-Move, so that's why they need a different entry, like the OR/AS Cosplay Pikachus knowing a special move each one.

It is true that the relational database is a little cumbersome when it comes to species-pokemon-forms, but it has its point and it is like that for a reason. With the proper queries you can get it right.

It can be improved and simplified better though, like having all different forms in one single table, including the cosmetic ones with a special "cosmetic" flag. That doesn't hurt and simplifies a lot querying and updating the DB iMO. I think that eevee is already planning to do something similar.

By the way I am trying to understand why this Zygarde 10% form is missing if this project data was supposed to come directly from the games via data mining/ripping? I don't how the data is added to the project, manually? Don't get me wrong, I don't see it as a bad thing, I am only trying to understand if there is an automated way to fix this or should we constantly fix mismatching/missing data manually?

magical commented 6 years ago

By the way I am trying to understand why this Zygarde 10% form is missing if this project data was supposed to come directly from the games via data mining/ripping?

I don't know for sure, but the most likely answer was that there was a bug in the ripper.

route1rodent commented 6 years ago

@magical Which made me remember this eevee post about data ripping. Is not always a trivial thing to do :/ https://eev.ee/blog/2017/08/02/datamining-pokemon/

magical commented 6 years ago

Regarding cosmetic/functional forms:

I made a list a few years ago of exactly what the differences were between all the forms (through Gen V): https://gist.github.com/magical/b89789fe20d36885b646

A large chunk of the differences are purely cosmetic, or just a couple of minor changes like a different ability and stats. (And of course with the addition of mega evolutions, that's probably the majority of all forms now.) It seems like we could do a better job in the UI of combining and highlighting these minor differences.

route1rodent commented 6 years ago

there is a "hacky" way to query the category of the forms, I have a project where I use this sql view: https://raw.githubusercontent.com/capsulemonsters/pokedex/master/src/migrations/00002_create_simplified_pokemon_view.sql basically it is a combined view with columns like form_category (mega, primal, regional, totem, alternate), is_cosmetic_form, is_form, has_own_sprite, all stats, ...