Instead of relying on people to remember to run a script to regenerate
it, just do it automatically at load time. Only takes a couple seconds.
And hey, this gives us a free test too! (CI will complain if load+dump
isn't clean.)
Fixes#334Fixes#74
- Add `pokemon_species.evolves_from_species_id` (and a corresponding
entry in `pokemon_evolution`) to new species which evolve from galarian
forms (Obstagoon, Perrserker, Cursola, Sirfetch'd, Mr. Rime, Runerigus),
which were incorrectly listed as base pokemon.
- Add missing evolution methods for a few more non-default forms (Alolan
Sandshrew, Alolan Vulpix, Alolan Meowth, Galarian Slowpoke, Galarian
Darumaka, Dusk Lycanroc)
This also adds two new evolution triggers for Sirfetch'd and Runerigus
Dump missing ORAS learnsets
In generation 6 there weren't different egg movesets for non-default forms, so I simply copied the base form's one. The FIXME comment referenced in #219 is talking about Sun/Moon I think, since in ORAS there are exactly 722 entries (721 pokemon + a dummy one with id 0).
Since I did a complete dump (like with #331) this also removes unneeded values from the order column.
I also added secret sword to keldeo and relic song to meloetta as move tutors.
Closes#219
Sword/Shield changed the english form name of all Alolan pokemon from
"Alola Form" to "Alolan Form" (other languages unchanged). This commit
makes the same change for pokemon which are not in Sword or Shield.
A missing name means the same thing as a blank name, so there's no point
keeping them around.
Totem Marowak has a Korean form name for some reason, and Kyogre and
Groudon have (autoeponymous) form names in every language _except_
Italian. But other than that there's nothing interesting.
Dump US/UM tutors
[Tutors][1] were taken from [pk3DS][2]). In both generation 7 games there are 3 additional tutors, which afaik are simply hardcoded (pikachu => volt tackle, keldeo => secret sword, meloetta => relic song), so I added them [by hand][3].
[1]: 46ab34c44f/scripts/dump_usum.py (L50):L130
[2]: 754b9b8d95/pk3DS/Subforms/Gen7/PersonalEditor7.cs (L63):L73
[3]: https://github.com/Parnassius/i-pokemoni/blob/master/scripts/dump_usum.py#L131:L137
Since i dumped the learnsets as a whole, this also adds a couple of other things:
- egg moves for non-default pokemon formes, which were previously missing (see #219, i plan to dump them from ORAS as well soon-ish)
- the learnsets for the zygarde form added in #327
- the `order` column for evolution moves (level 0), which was previously missing
Closes#223Closes#241
Those games don't have HMs, and for example
https://veekun.com/dex/moves/fly shows fly is HM02, while it should be
TM76. Note that HMs which were converted into TMs in gen7 seems to be
already present in machines.csv with their new TM number as well.
Rename Mt. Coronet areas
From the PR:
> Mt. Coronet's floors were misnumbered: a small room on 4F was labelled as 5F, causing the subsequent floors to all be off-by-one. This pull request corrects that numbering, aligning the floor numbering with the official guidebook.
>
> Additionally, a number of the areas within Mt. Coronet had vague or otherwise unclear names (especially "cave"). This pull request renames those areas for clarity. It also ensures that all areas on 1F include "1F" in their name, for consistency.
They were cyclically off by one, so e.g. machine 0 mapped to tm01,
machine 99 wrapped around to tm00, machine 100 mapped to tr01, and
machine 199 mapped to tr00.
The moves seem to be right though.
update machines m set item_id = (select item_id from machines m2 where m2.machine_number = (m.machine_number+99) % 100 + case when m.machine_number >= 100 then 100 else 0 end and version_group_id = 20) where version_group_id = 20;
Pytest started warning about unknown markers at some point. Not sure
when. My local version doesn't do it but the CI versions do.
> PytestUnknownMarkWarning: Unknown pytest.mark.slow - is this a typo?
You can register custom marks to avoid this warning - for details, see
https://docs.pytest.org/en/stable/mark.html
Python 3.6 deprecated using regex flag syntax (?x) to set flags in the
middle of a pattern. Now you can only use it at the start of a pattern.
Fortunately that same release added a new scoped-flag syntax, (?x:).
(Wait, you say, it looks like our code *does* set flags at the start of
the pattern? That's true, but the markdown module includes our regex in the
middle of a larger one, so it's not actually at the start.)
Fixes this warning (and a couple similar ones):
DeprecationWarning: Flags not at the start of the expression '^(.?)(?x) \[ ([^]]' (truncated)
self.compiled_re = re.compile(r"^(.?)%s(.)$" % pattern
Fixes the following warnings when run with Markdown 2.6.11:
DeprecationWarning: "safe_mode" is deprecated in Python-Markdown. Use an HTML sanitizer (like Bleach https://bleach.readthedocs.io/) if you are parsing untrusted markdown text. See the 2.6 release notes for more info
DeprecationWarning: Using short names for Markdown's builtin extensions is deprecated. Use the full path to the extension with Python's dot notation (eg: "markdown.extensions.extra" instead of "extra"). The current behavior will raise an error in version 2.7. See the Release Notes for Python-Markdown version 2.6 for more info.
Also get rid of some compatability code for Markdown 2.0, which we no longer support.
Updates #257
The next commit will fix the warnings, and we need a newer version for
Python 3.9 support because 2.4.1 doesn't work with it.
Markdown 2.6.11 was the last release before 3.0.
Updates #257