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.
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;
The Mt. Coronet area names were not sufficiently clear as to which
areas they were referring to (especially the one simply named "cave").
I have renamed all of the areas that I think were unclear,
as well as ensured that all 1F areas in Mt. Coronet
include "1F" in their name for consistency.
"Quick tempered" and "A little quick tempered" erroneously had the same
Spanish translation, "Tiene mal genio". The latter should actually be
"A veces se enfada".
Verified against a text dump.
Fixes#309
Legendary and Mythical are official terms which, while generally not
present in the game data, are more or less consistently applied in
promotional material. They're also useful categorizations to fans,
so it seems reasonable to include them here.
The legendary Pokémon are:
Articuno, Zapdos, Moltres, Mewtwo,
Raikou, Entei, Suicune, Lugia, Ho-Oh,
Regirock, Regice, Registeel,
Latias, Latios, Kyogre, Groudon, Rayquaza,
Uxie, Mesprit, Azelf, Dialga, Palkia, Giratina,
Heatran, Regigigas, Cresselia,
Cobalion, Terrakion, Virizion,
Tornadus, Thundurus, Landorus,
Reshiram, Zekrom, Kyurem,
Xerneas, Yveltal, Zygarde,
Tapu Koko, Tapu Lele, Tapu Bulu, Tapu Fini,
Cosmog, Cosmoem, Solgaleo, Lunala, Necrozma.
The mythical Pokémon are: Mew, Celebi, Jirachi, Deoxys, Phione, Manaphy,
Darkrai, Shaymin, Arceus, Victini, Keldeo, Meloetta, Genesect,
Diancie, Hoopa, Volcanion, Magearna, Marshadow, Zeraora.
A bug in the text dumper caused み to be replaced with a narrow
non-breaking space and the actual nbsp character in the unicode private
use area to go untranslated.
Only affected OR/AS.
Fix with a simple text replace on the affected entries.
import csv
in_ = open("../pokedex/data/csv/pokemon_species_flavor_text.csv", "r")
out = open("fixed.csv", "w")
r = csv.reader(in_, lineterminator='\n')
w = csv.writer(out, lineterminator='\n')
for row in r:
text = row[3]
if row[1] in {'25', '26'}:
text = text.replace("\u202f", "\u307f") # nbsp => mi
text = text.replace("\ue07f", "\u202f") # e07f => nbsp
w.writerow((row[0], row[1], row[2], text))
out.close()
Fixes#308
The initial import of data from S/M and US/UM only included held items for Moon
and Ultra Sun. (Presumably those were the only games eevee had access to?)
I now have all four games and I've verified that the data file which
contains held items is completely identical between Sun and Moon, and between
Ultra Sun and Ultra Moon.
So we can just copy the held items from the other two games.
pokedex=> insert into pokemon_items (select pokemon_id, 27, item_id, rarity from pokemon_items where version_id=28);
INSERT 0 356
Time: 220.560 ms
pokedex=> insert into pokemon_items (select pokemon_id, 30, item_id, rarity from pokemon_items where version_id=29);
INSERT 0 362
Time: 102.063 ms
Gen III contest effects were part of the initial data import from brown
veekun and so have probably never gotten a proper rip.
This commit re-rips contest effect stats, types, combos, and the mapping
between contest effects and moves.
None of the stats changed (jam & appeal); a few moves got assigned
different contest effects (specifically: smokescreen, flash, spite, and
shadow ball); and several combos changed.
For example, Hail was listed as comboing into the following moves
(this is also what Bulbapedia says):
Ice Beam, Blizzard, Aurora Beam, Haze, Powder Snow, Icy Wind,
Ice Ball, Weather Ball, Sheer Cold, Icicle Spear
However, the actual list is much shorter:
Blizzard, Powder Snow, Weather Ball
I verified on my Ruby cart that Hail->Ice Beam and Hail->Icy Wind are
not real combos, and that Hail->Blizzard is.
n.b. There are a bunch of unused contest effects in the game: out of 48
effects, 15 are not used by any move. The pokedex doesn't currently
include these. I elected not to add them, partly because i didn't want
to have to rip flavor text for them, but mostly because if i were going
to go that route i would probably reassign contest_effects.id to match
their internal ids, which would have made for uglier diffs.
Fixes#280
- link to nonexistant `[]{move:shield}` in Color Change (changed to protect)
- invalid syntax `[move:sandstorm]` in Primordial Sea
- invalid syntax `[move:sandstorm]` in Desolate Land
- invalid syntax `[move:sandstorm]` in Delta Stream
Found by test_markdown_values, which is not run by default because it is
slow. It can be run manually with
py.test pokedex/tests/test_strings.py --all