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
I also changed Celebrate's effect to "unknown", which I meant to commit
separately but it got caught up in this one. It has a unique effect ID,
and we don't know for sure that it does nothing. Also, Splash's effect
(which it was sharing) says that the move is disabled by Gravity, which
isn't true of Celebrate.
Notes:
- I left all the flags surskitty added alone (powder, bite, pulse,
ballistics, and mental) because they don't seem to be in with the
other move flags. The only new flags are the Sky Battle one that I
added, and a mystery one, which I didn't add —
http://pastebin.com/K27Vk95J
- move_meta_* is a mess and I don't like it but X/Y seem to have all the
same move meta as B/W did so I updated it for the time being
- I didn't update effect_id because I'd have to sort out all the new
effects that I added manually and that sounds like a bigger endeavour
<Zhorken> I'd like to motion (again) that 0 and 1 power both be stored
as null
<Zhorken> and — or * be displayed based on damage class
<Zhorken> which is what determines 0 vs 1 anyway, with the arbitrary
who-fucking-cares exception of Me First
<eevee> the ayes have it
<Zhorken> awesome
<eevee> that's a good idea i don't remember its being motioned the
first time
<Zhorken> I definitely remember arguing it when B/W released
Based on a Platinum text dump; I'm pretty sure Conversion2 was all one
word at some point.
Interestingly, the use messages for U-turn all read "___________ used
U-Turn!", but it's "U-turn" as the actual move name.
Curse's type_id was 0, which is bogus; this has been fixed by creating a
real ????? type.
Fourth-gen moves all had zero as a contest effect id, which was also
bogus.
Pokémon 494 and 495 were junk and have been scrapped entirely.
pokemon_form_groups's description column was too short.
pokedex's connect() now takes kwargs passed to sessionmaker().
A more major change: some tables, like pokemon, are self-referential and
contain rows that refer to rows later in the table (for example, Pikachu
evolves from Pichu, which has a higher id). At the moment such a row is
loaded, the foreign key is thus bogus. I solved this by turning on
autocommit and wrapping add() in a try block, then attempting to readd
every failed row again after the rest of the table is finished. Slows
the import down a bit, but makes it work perfectly with foreign key
checks on.