diff --git a/pokedex/data/csv/pokemon.csv b/pokedex/data/csv/pokemon.csv index fad6b15..cf932b7 100644 --- a/pokedex/data/csv/pokemon.csv +++ b/pokedex/data/csv/pokemon.csv @@ -485,17 +485,24 @@ id,name,forme_name,forme_base_pokemon_id,generation_id,evolution_chain_id,evolut 484,Palkia,,,4,245,,,,42,3360,Spatial,purple,6,,-1,30,220,0,,0,0,0 485,Heatran,,,4,246,,,,17,4300,Lava Dome,brown,8,,4,3,215,100,,0,0,0 486,Regigigas,,,4,247,,,,37,4200,Colossal,white,12,,-1,3,220,0,,0,0,0 -487,Giratina,,,4,248,,,,45,7500,Renegade,black,10,,-1,3,220,0,,0,0,0 +487,Giratina,altered,,4,248,,,,45,7500,Renegade,black,10,,-1,3,220,0,,0,0,0 488,Cresselia,,,4,249,,,,15,856,Lunar,yellow,14,,8,3,210,100,,0,0,0 489,Phione,,,4,250,,,,4,31,Sea Drifter,blue,4,,-1,30,165,70,,1,0,0 490,Manaphy,,,4,250,489,21,,3,14,Seafaring,blue,12,,-1,3,215,70,,0,0,0 491,Darkrai,,,4,252,,,,15,505,Pitch-Black,black,12,,-1,3,210,0,,0,0,0 -492,Shaymin,,,4,253,,,,2,21,Gratitude,green,8,,-1,45,64,100,,0,0,0 +492,Shaymin,land,,4,253,,,,2,21,Gratitude,green,8,,-1,45,64,100,,0,0,0 493,Arceus,,,4,254,,,,32,3200,Alpha,gray,8,,-1,3,255,0,,0,0,0 -494,Pokemon494,,,,0,,,,0,0,,,0,,-1,3,255,0,,0,0,0 -495,Pokemon495,,,,0,,,,0,0,,,0,,-1,3,255,0,,0,0,0 -496,Deoxys,attack,386,,,,,,17,608,DNA,red,12,rare,-1,3,215,0,,0,0,0 -497,Deoxys,defense,386,,,,,,17,608,DNA,red,12,rare,-1,3,215,0,,0,0,0 -498,Deoxys,speed,386,,,,,,17,608,DNA,red,12,rare,-1,3,215,0,,0,0,0 -499,Wormadam,ground,413,,,,,,5,65,Bagworm,gray,2,,8,45,159,70,,0,0,0 -500,Wormadam,steel,413,,,,,,5,65,Bagworm,gray,2,,8,45,159,70,,0,0,0 +494,Pokemon494,,,,,,,,0,0,,,0,,-1,3,255,0,,0,0,0 +495,Pokemon495,,,,,,,,0,0,,,0,,-1,3,255,0,,0,0,0 +496,Deoxys,attack,386,,202,,,,17,608,DNA,red,12,rare,-1,3,215,0,,0,0,0 +497,Deoxys,defense,386,,202,,,,17,608,DNA,red,12,rare,-1,3,215,0,,0,0,0 +498,Deoxys,speed,386,,202,,,,17,608,DNA,red,12,rare,-1,3,215,0,,0,0,0 +499,Wormadam,ground,413,,213,412,3,20,5,65,Bagworm,gray,2,,8,45,159,70,,0,0,0 +500,Wormadam,steel,413,,213,412,3,20,5,65,Bagworm,gray,2,,8,45,159,70,,0,0,0 +501,Giratina,origin,487,4,248,,,,45,7500,Renegade,black,10,,-1,3,220,0,,0,0,0 +502,Shaymin,sky,492,4,253,,,,2,21,Gratitude,green,8,,-1,45,64,100,,0,0,0 +503,Rotom,heat,479,4,240,,,,3,3,Plasma,red,1,,-1,45,132,70,,0,0,0 +504,Rotom,wash,479,4,240,,,,3,3,Plasma,red,1,,-1,45,132,70,,0,0,0 +505,Rotom,frost,479,4,240,,,,3,3,Plasma,red,1,,-1,45,132,70,,0,0,0 +506,Rotom,fan,479,4,240,,,,3,3,Plasma,red,1,,-1,45,132,70,,0,0,0 +507,Rotom,mow,479,4,240,,,,3,3,Plasma,red,1,,-1,45,132,70,,0,0,0 diff --git a/pokedex/data/csv/pokemon_form_groups.csv b/pokedex/data/csv/pokemon_form_groups.csv new file mode 100644 index 0000000..c27be6a --- /dev/null +++ b/pokedex/data/csv/pokemon_form_groups.csv @@ -0,0 +1,12 @@ +pokemon_id,description +201,Forms only affect appearance. A form is selected at random before a wild encounter and cannot be changed. +351,Form changes to match the current weather. +386,"Forms have different stats and movepools. Form changes depending on the game: normal form in Ruby/Sapphire, Attack form in Fire Red, Defense form in Leaf Green, and Speed form in Emerald. Every form exists in Diamond/Pearl/Platinum, and form is preserved when transferring from an older game. Meteorites in the south end of Veilstone City can be used to switch between forms." +412,"Cloaks only affect appearance, although they become permanent upon evolution. Cloak changes to match the current terrain after a battle (or when an egg hatches), if possible: Plant Cloak for grassy areas, Sandy Cloak for beaches and caves, or Trash Cloak for buildings." +413,"Forms have different stats and movepools. During evolution, the current cloak becomes the new form, and can no longer be changed." +421,"Sunshine form is active only during Sunny Day, due to Flower Gift." +422,Forms only affect appearance. A form is selected before a wild encounter based on whether the battle is in Western or Eastern Sinnoh and cannot be changed. +423,Forms only affect appearance. A form is selected before a wild encounter based on whether the battle is in Western or Eastern Sinnoh and cannot be changed. +479,"Forms have different signature moves. When switching forms, the old signature move is removed and the new one, if any, is learned immediately. In a secret room in the Galactic Eterna Building, accessible only with a Secret Key, there are appliances that can be used to switch between forms." +492,"Forms have different stats and movepools. After using Gracidea, Sky form will be active during daytime; otherwise, only Land form is active. Gracidea only works on an official event Shaymin." +493,"Form always reflects type, which may be changed by attaching a Plate and activating Multitype." diff --git a/pokedex/data/csv/pokemon_form_sprites.csv b/pokedex/data/csv/pokemon_form_sprites.csv new file mode 100644 index 0000000..3222d55 --- /dev/null +++ b/pokedex/data/csv/pokemon_form_sprites.csv @@ -0,0 +1,77 @@ +id,pokemon_id,name +1,201,a +2,201,b +3,201,c +4,201,d +5,201,e +6,201,f +7,201,g +8,201,h +9,201,i +10,201,j +11,201,k +12,201,l +13,201,m +14,201,n +15,201,o +16,201,p +17,201,q +18,201,r +19,201,s +20,201,t +21,201,u +22,201,v +23,201,w +24,201,x +25,201,y +26,201,z +27,201,? +28,201,! +29,351, +30,351,sun +31,351,rain +32,351,hail +33,386, +34,386,attack +35,386,defense +36,386,speed +37,412,plant +38,412,sandy +39,412,trash +40,413,plant +41,413,sandy +42,413,trash +43,421, +44,421,sunshine +45,422,east +46,422,west +47,423,east +48,423,west +49,479, +50,479,fan +51,479,frost +52,479,heat +53,479,mow +54,479,wash +55,487, +56,487,origin +57,492, +58,492,sky +59,493,bug +60,493,dark +61,493,dragon +62,493,electric +63,493,fighting +64,493,fire +65,493,flying +66,493,ghost +67,493,grass +68,493,ground +69,493,ice +70,493,normal +71,493,????? +72,493,poison +73,493,psychic +74,493,rock +75,493,steel +76,493,water diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 95961d3..5a4c5b4 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -228,6 +228,17 @@ class PokemonFlavorText(TableBase): version_id = Column(Integer, ForeignKey('versions.id'), primary_key=True, nullable=False, autoincrement=False) flavor_text = Column(Unicode(255), nullable=False) +class PokemonFormGroup(TableBase): + __tablename__ = 'pokemon_form_groups' + pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False) + description = Column(Unicode(255), nullable=False) + +class PokemonFormSprite(TableBase): + __tablename__ = 'pokemon_form_sprites' + id = Column(Integer, primary_key=True, nullable=False) + pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False) + name = Column(Unicode(16), nullable=True) + class PokemonName(TableBase): __tablename__ = 'pokemon_names' pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False) @@ -321,6 +332,10 @@ PokemonDexNumber.generation = relation(Generation) PokemonFlavorText.version = relation(Version) +PokemonFormGroup.pokemon = relation(Pokemon, backref=backref('form_group', + uselist=False)) +PokemonFormSprite.pokemon = relation(Pokemon, backref='form_sprites') + PokemonName.language = relation(Language) PokemonStat.stat = relation(Stat)