We have way of figuring out IDs for Aerilate or Parental Bond, because
those abilities are only on Megas. I assumed they'd fit in the two-ID
gap and took a wild guess at order. (I put Parental Bond first
because Kangaskhan comes first.)
I defaulted to 1:1. As far as I know, while we may not know the exact
ratios for most new Pokémon, we do know that everything I just marked
1:1 comes in male and female.
Also, we need to split this into per-form for Meowstic's "forms".
Also also, wait, is gender_rate seriously not a foreign key? I spent a
good minute trying to figure out where the gender ratio enum table was.
Generation VI doesn't have a canonical pokedex (it has three). We don't
use this anywhere and as far as i can tell we never have. We can revive
it in another form if and when we find we need it.
Conflicts:
pokedex/data/csv/generations.csv
pokedex/db/tables.py
This commit originally included Basculin, too, but then magical dealt
with that before I pushed. Anyway, the query I used should have caught
any other similar cases, too:
insert into pokemon_moves select p.id, 14, pm.move_id, 2, 0, null from
pokemon_moves pm
join pokemon p on pm.pokemon_id=p.species_id and p.is_default=false
where pm.version_group_id=14 and pm.pokemon_move_method_id=2;
The join condition is cheating a little, but it does happen to work; it
joins a pokemon_move to all non-default forms of the same Pokémon. If
being default and having id=species_id didn't go hand-in-hand, I'm
pretty sure it'd require two joins to pokemon.
I'm assuming Normal Deoxys learns tutors based on Speed Deoxys's list,
given that Attack and Defense Deoxys have all the same tutors, and Speed
Deoxys has all those same tutors too while only gaining tutors unique to
Emerald. So in other words, it looks like Deoxys's Forme doesn't matter
for tutor compatibility in Gen III.
Notes:
- The removal of "Type" in ??? Arceus's French name follows all its
other types, even though ??? Arceus obviously doesn't appear in
Pokédex 3D Pro. (The English names do retain "Type".)
- Meloetta and Genesect are locked until passwords are revealed for
them. Meloetta is pretty unambiguously "Forme", but Genesect's forms
being named after their drives is still our (my) invention.
- Spiky-eared Pichu is also absent from Pokédex 3D, but I remember
having good reason for not including "Form" or anything. I just don't
don't remember what it was. Probably just that nothing's official,
afaik, and it's not really a "form" like the others, in that it's a
specific individual and a very small variation. "-eared" with a
lowercase "e" is definitely what the games say, though.
- I can put other foreign form names in later, although I won't know how
to do pokemon_name for other languages.
Also worth noting: I gave the alternate forms their respective moves
even though they technically learn them specifically in their default
forms. It seems weird to say that only one form gets the move,
especially when learning Secret Sword immediately causes Keldeo to /not/
be its default form. Also, Pirouette Meloetta already has TMs and other
tutors even though it's battle-only.
Note that "Form" isn't actaully official for Kyurem; it's just "Kyurem",
"Black Kyurem", and "White Kyurem", but we do the same with Rotom and
some other cases like this.
- Victory Road, Giant Chasm, and Reversal Mountain have unknown area
names. The others are hopefully accurate.
- Swarms are, again, not present. Neither are Hidden Grove encounters.
Most of the English names are official; the remaining few were
translated by Guested.
B/W 2 adds another Victory Road—this is a new location, distinct from
the previous one. The name remains the same, but our identifier is
unova-victory-road-2.
Spots: it might seem like they should be conditions, but in practice
they behave more like methods. Specifically, conditions typically make
only minor changes to an encounter list. Spots change everything.
So spots are added as methods, with each type of spot as a separate
method. Not exactly ideal, but this causes the least fuss.
Seasons work fine as conditions.
Well, as well as time-of-day.
I spent longer than I should have deliberating, but in the end, it came
down to the fact that searching for "Player" won't fuzzy-match the long
versions.