From: Eevee Date: Sat, 27 Nov 2010 09:25:38 +0000 (-0800) Subject: Implement a move data changelog. Update old moves to their Gen V stats. #78 X-Git-Tag: veekun-promotions/2010120701~20 X-Git-Url: http://git.veekun.com/zzz-pokedex.git/commitdiff_plain/05307971f700f0d7f379a90172cc96add8641c72 Implement a move data changelog. Update old moves to their Gen V stats. #78 --- diff --git a/pokedex/data/csv/move_changelog.csv b/pokedex/data/csv/move_changelog.csv new file mode 100644 index 0000000..f738b61 --- /dev/null +++ b/pokedex/data/csv/move_changelog.csv @@ -0,0 +1,34 @@ +move_id,changed_in_version_group_id,power,pp,accuracy +20,11,,,75 +26,11,85,25, +33,11,35,,95 +35,11,,,85 +37,11,90,20, +50,11,,,80 +80,11,90,20, +83,11,15,,70 +92,11,,,85 +128,11,,,75 +136,11,100,20, +137,11,,,75 +139,11,,,55 +152,11,,,85 +170,11,,40, +178,11,,,85 +202,11,60,, +210,11,10,, +248,11,80,15,90 +250,11,15,,70 +251,11,10,, +253,11,50,, +328,11,15,,70 +331,11,10,, +333,11,10,, +343,11,40,, +350,11,,,80 +353,11,120,,85 +382,11,0,, +386,11,60,, +387,11,130,, +409,11,60,5, +463,11,,,70 diff --git a/pokedex/data/csv/moves.csv b/pokedex/data/csv/moves.csv index a45e66e..eedbbe9 100644 --- a/pokedex/data/csv/moves.csv +++ b/pokedex/data/csv/moves.csv @@ -18,24 +18,24 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 17,Wing Attack,1,3,60,35,100,0,10,2,1,,1,12,5 18,Whirlwind,1,1,0,20,100,-6,10,1,29,,4,21,9 19,Fly,1,3,90,15,95,0,10,2,156,,4,15,6 -20,Bind,1,1,15,20,75,0,10,2,43,100,5,24,21 +20,Bind,1,1,15,20,85,0,10,2,43,100,5,24,21 21,Slam,1,1,80,20,75,0,10,2,1,,5,23,5 22,Vine Whip,1,12,35,15,100,0,10,2,1,,1,1,5 23,Stomp,1,1,65,20,100,0,10,2,151,30,5,4,5 24,Double Kick,1,2,30,30,100,0,10,2,45,,1,12,7 25,Mega Kick,1,1,120,5,75,0,10,2,1,,1,1,18 -26,Jump Kick,1,2,85,25,95,0,10,2,46,,1,3,5 +26,Jump Kick,1,2,100,10,95,0,10,2,46,,1,3,5 27,Rolling Kick,1,2,60,15,85,0,10,2,32,30,1,5,5 28,Sand-Attack,1,5,0,15,100,0,10,1,24,,3,10,19 29,Headbutt,1,1,70,15,100,0,10,2,32,30,5,9,5 30,Horn Attack,1,1,65,25,100,0,10,2,1,,1,1,5 31,Fury Attack,1,1,15,20,85,0,10,2,30,,1,10,7 32,Horn Drill,1,1,1,5,30,0,10,2,39,,1,14,9 -33,Tackle,1,1,35,35,95,0,10,2,1,,5,1,5 +33,Tackle,1,1,50,35,100,0,10,2,1,,5,1,5 34,Body Slam,1,1,85,15,100,0,10,2,7,30,5,4,5 -35,Wrap,1,1,15,20,85,0,10,2,43,100,5,24,21 +35,Wrap,1,1,15,20,90,0,10,2,43,100,5,24,21 36,Take Down,1,1,90,20,85,0,10,2,49,,5,3,5 -37,Thrash,1,1,90,20,100,0,8,2,28,,5,6,7 +37,Thrash,1,1,120,10,100,0,8,2,28,,5,6,7 38,Double-Edge,1,1,120,15,100,0,10,2,199,,5,3,9 39,Tail Whip,1,1,0,30,100,0,11,1,20,,3,28,19 40,Poison Sting,1,4,15,35,100,0,10,2,3,30,4,9,19 @@ -48,7 +48,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 47,Sing,1,1,0,15,55,0,10,1,2,,3,18,19 48,Supersonic,1,1,0,20,55,0,10,1,50,,4,21,19 49,SonicBoom,1,1,1,20,90,0,10,3,131,,1,12,5 -50,Disable,1,1,0,20,80,0,10,1,87,,4,18,19 +50,Disable,1,1,0,20,100,0,10,1,87,,4,18,19 51,Acid,1,4,40,30,100,0,11,3,73,10,4,4,5 52,Ember,1,10,40,25,100,0,10,3,5,10,2,1,5 53,Flamethrower,1,10,95,15,100,0,10,3,5,10,2,1,17 @@ -78,10 +78,10 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 77,PoisonPowder,1,4,0,35,75,0,10,1,67,,4,33,19 78,Stun Spore,1,12,0,30,75,0,10,1,68,,4,14,19 79,Sleep Powder,1,12,0,15,75,0,10,1,2,,4,5,19 -80,Petal Dance,1,12,90,20,100,0,8,3,28,,2,6,21 +80,Petal Dance,1,12,120,10,100,0,8,3,28,,2,6,21 81,String Shot,1,7,0,40,95,0,11,1,21,,4,9,19 82,Dragon Rage,1,16,1,10,100,0,10,3,42,,1,26,5 -83,Fire Spin,1,10,15,15,70,0,10,3,43,100,2,24,21 +83,Fire Spin,1,10,35,15,85,0,10,3,43,100,2,24,21 84,ThunderShock,1,13,40,30,100,0,10,3,7,10,1,1,5 85,Thunderbolt,1,13,95,15,100,0,10,3,7,10,1,1,17 86,Thunder Wave,1,13,0,20,100,0,10,1,68,,1,14,19 @@ -90,7 +90,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 89,Earthquake,1,5,100,10,100,0,9,2,148,,5,5,18 90,Fissure,1,5,1,5,30,0,10,2,39,,5,14,9 91,Dig,1,5,80,10,100,0,10,2,257,,4,15,6 -92,Toxic,1,4,0,10,85,0,10,1,34,,4,33,19 +92,Toxic,1,4,0,10,90,0,10,1,34,,4,33,19 93,Confusion,1,14,50,25,100,0,10,3,77,10,4,9,5 94,Psychic,1,14,90,10,100,0,10,3,73,10,4,5,17 95,Hypnosis,1,14,0,20,70,0,10,1,2,,4,5,19 @@ -126,7 +126,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 125,Bone Club,1,5,65,20,85,0,10,2,32,10,5,10,5 126,Fire Blast,1,10,120,5,85,0,10,3,5,10,2,1,17 127,Waterfall,1,11,80,15,100,0,10,2,32,20,5,28,5 -128,Clamp,1,11,35,10,75,0,10,2,43,100,5,24,5 +128,Clamp,1,11,35,10,85,0,10,2,43,100,5,24,5 129,Swift,1,1,60,20,,0,11,3,18,,1,27,17 130,Skull Bash,1,1,100,15,100,0,10,2,146,100,5,4,6 131,Spike Cannon,1,1,20,15,100,0,10,2,30,,1,10,7 @@ -134,10 +134,10 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 133,Amnesia,1,14,0,20,,0,7,1,55,,3,32,11 134,Kinesis,1,14,0,15,80,0,10,1,24,,4,24,11 135,Softboiled,1,1,0,10,,0,7,1,33,,2,1,8 -136,Hi Jump Kick,1,2,100,20,90,0,10,2,46,,1,3,5 -137,Glare,1,1,0,30,75,0,10,1,68,,5,5,19 +136,Hi Jump Kick,1,2,130,10,90,0,10,2,46,,1,3,5 +137,Glare,1,1,0,30,90,0,10,1,68,,5,5,19 138,Dream Eater,1,14,100,15,100,0,10,3,9,,4,8,20 -139,Poison Gas,1,4,0,40,55,0,11,1,67,,4,33,5 +139,Poison Gas,1,4,0,40,90,0,11,1,67,,4,33,5 140,Barrage,1,1,15,20,85,0,10,2,30,,5,12,7 141,Leech Life,1,7,20,15,100,0,10,2,4,,4,9,20 142,Lovely Kiss,1,1,0,10,75,0,10,1,2,,2,5,19 @@ -150,7 +150,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 149,Psywave,1,14,1,15,80,0,10,3,89,,4,14,5 150,Splash,1,1,0,40,,0,7,1,86,,3,28,16 151,Acid Armor,1,4,0,40,,0,7,1,52,,5,32,11 -152,Crabhammer,1,11,90,10,85,0,10,2,44,,5,2,18 +152,Crabhammer,1,11,90,10,90,0,10,2,44,,5,2,18 153,Explosion,1,1,250,5,100,0,9,2,8,,2,7,9 154,Fury Swipes,1,1,18,15,80,0,10,2,30,,5,10,7 155,Bonemerang,1,5,50,10,90,0,10,2,45,,5,1,7 @@ -168,7 +168,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 167,Triple Kick,2,2,10,10,90,0,10,2,105,,1,1,7 168,Thief,2,17,40,10,100,0,10,2,106,,5,20,12 169,Spider Web,2,7,0,10,,0,10,1,107,,4,18,13 -170,Mind Reader,2,1,0,40,,0,10,1,95,,4,24,20 +170,Mind Reader,2,1,0,5,,0,10,1,95,,4,24,20 171,Nightmare,2,8,0,15,100,0,10,1,108,,4,5,19 172,Flame Wheel,2,10,60,25,100,0,10,2,126,10,2,1,7 173,Snore,2,1,40,15,100,0,10,3,93,30,3,1,5 @@ -176,7 +176,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 175,Flail,2,1,1,15,100,0,10,2,100,,3,26,15 176,Conversion 2,2,1,0,30,,0,10,1,94,,2,12,23 177,Aeroblast,2,3,100,5,95,0,10,3,44,,1,2,22 -178,Cotton Spore,2,12,0,40,85,0,10,1,61,,2,10,1 +178,Cotton Spore,2,12,0,40,100,0,10,1,61,,2,10,1 179,Reversal,2,2,1,15,100,0,10,2,100,,1,28,15 180,Spite,2,8,0,10,100,0,10,1,101,,5,28,19 181,Powder Snow,2,15,40,25,100,0,11,3,6,10,2,1,5 @@ -200,7 +200,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 199,Lock-On,2,1,0,5,,0,10,1,95,,4,24,20 200,Outrage,2,16,120,15,100,0,8,2,28,,1,6,7 201,Sandstorm,2,6,0,10,,0,12,1,116,,5,21,13 -202,Giga Drain,2,12,60,10,100,0,10,3,4,,4,10,20 +202,Giga Drain,2,12,75,10,100,0,10,3,4,,4,10,20 203,Endure,2,1,0,10,,4,7,1,117,,5,16,13 204,Charm,2,1,0,20,100,0,10,1,59,,3,23,19 205,Rollout,2,6,30,20,90,0,10,2,118,,5,24,7 @@ -208,7 +208,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 207,Swagger,2,1,0,15,90,0,10,1,119,,3,27,19 208,Milk Drink,2,1,0,10,,0,7,1,33,,3,12,8 209,Spark,2,13,65,20,100,0,10,2,7,30,1,4,5 -210,Fury Cutter,2,7,10,20,95,0,10,2,120,,1,17,7 +210,Fury Cutter,2,7,20,20,95,0,10,2,120,,1,17,7 211,Steel Wing,2,9,70,25,90,0,10,2,139,10,1,12,5 212,Mean Look,2,1,0,5,,0,10,1,107,,2,18,10 213,Attract,2,1,0,15,100,0,10,1,121,,3,18,19 @@ -246,12 +246,12 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 245,ExtremeSpeed,2,1,80,5,100,2,10,2,104,,1,30,1 246,AncientPower,2,6,60,5,100,0,10,3,141,10,5,32,18 247,Shadow Ball,2,8,80,15,100,0,10,3,73,20,4,21,17 -248,Future Sight,2,14,80,15,90,0,10,3,149,,4,24,17 +248,Future Sight,2,14,100,10,100,0,10,3,149,,4,24,17 249,Rock Smash,2,2,40,15,100,0,10,2,70,50,5,29,18 -250,Whirlpool,2,11,15,15,70,0,10,3,262,100,2,24,21 -251,Beat Up,2,17,10,10,100,0,10,2,155,,4,14,7 +250,Whirlpool,2,11,35,15,85,0,10,3,262,100,2,24,21 +251,Beat Up,2,17,1,10,100,0,10,2,155,,4,14,7 252,Fake Out,3,1,40,10,100,3,10,2,159,100,3,23,17 -253,Uproar,3,1,50,10,100,0,8,3,160,,3,21,10 +253,Uproar,3,1,90,10,100,0,8,3,160,,3,21,10 254,Stockpile,3,1,0,20,,0,7,1,161,,5,16,11 255,Spit Up,3,1,1,10,100,0,10,3,162,,5,1,18 256,Swallow,3,1,0,10,,0,7,1,163,,5,32,8 @@ -326,12 +326,12 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 325,Shadow Punch,3,8,60,20,,0,10,2,18,,4,27,17 326,Extrasensory,3,14,80,30,100,0,10,3,32,10,1,4,17 327,Sky Uppercut,3,2,85,15,90,0,10,2,208,,1,23,17 -328,Sand Tomb,3,5,15,15,70,0,10,2,43,100,4,24,21 +328,Sand Tomb,3,5,35,15,85,0,10,2,43,100,4,24,21 329,Sheer Cold,3,15,1,5,30,0,10,3,39,,2,14,9 330,Muddy Water,3,11,95,10,85,0,11,3,74,30,5,10,18 -331,Bullet Seed,3,12,10,30,100,0,10,2,30,,1,14,7 +331,Bullet Seed,3,12,25,30,100,0,10,2,30,,1,14,7 332,Aerial Ace,3,3,60,20,,0,10,2,18,,1,27,17 -333,Icicle Spear,3,15,10,30,100,0,10,2,30,,2,23,7 +333,Icicle Spear,3,15,25,30,100,0,10,2,30,,2,23,7 334,Iron Defense,3,9,0,15,,0,7,1,52,,5,15,13 335,Block,3,1,0,5,,0,10,1,107,,3,18,13 336,Howl,3,1,0,40,,0,7,1,11,,1,32,11 @@ -341,17 +341,17 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 340,Bounce,3,3,85,5,85,0,10,2,264,30,3,15,6 341,Mud Shot,3,5,55,15,95,0,10,3,71,100,5,5,2 342,Poison Tail,3,4,50,25,100,0,10,2,210,10,4,33,4 -343,Covet,3,1,40,40,100,0,10,2,106,,3,20,12 +343,Covet,3,1,60,40,100,0,10,2,106,,3,20,12 344,Volt Tackle,3,13,120,15,100,0,10,2,263,10,1,3,22 345,Magical Leaf,3,12,60,20,,0,10,3,18,,2,27,17 346,Water Sport,3,11,0,15,,0,12,1,211,,3,1,13 347,Calm Mind,3,14,0,20,,0,7,1,212,,4,16,11 348,Leaf Blade,3,12,90,15,100,0,10,2,44,,1,2,17 349,Dragon Dance,3,16,0,20,,0,7,1,213,,1,32,11 -350,Rock Blast,3,6,25,10,80,0,10,2,30,,5,12,7 +350,Rock Blast,3,6,25,10,90,0,10,2,30,,5,12,7 351,Shock Wave,3,13,60,20,,0,10,3,18,,1,27,17 352,Water Pulse,3,11,60,20,100,0,10,3,77,20,2,21,17 -353,Doom Desire,3,9,120,5,85,0,10,3,149,,1,24,17 +353,Doom Desire,3,9,140,5,100,0,10,3,149,,1,24,17 354,Psycho Boost,3,14,140,5,90,0,10,3,205,100,4,3,22 355,Roost,4,3,0,10,,0,7,1,215,,1,,8 356,Gravity,4,14,0,5,,0,12,1,216,,2,,13 @@ -380,12 +380,12 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 379,Power Trick,4,14,0,10,,0,7,1,239,,1,,16 380,Gastro Acid,4,4,0,10,100,0,10,1,240,,2,,13 381,Lucky Chant,4,1,0,30,,0,4,1,241,,3,,13 -382,Me First,4,1,0,20,,0,2,1,242,,3,,1 +382,Me First,4,1,1,20,,0,2,1,242,,3,,1 383,Copycat,4,1,0,20,,0,7,1,243,,1,,12 384,Power Swap,4,14,0,10,,0,10,1,244,,2,,16 385,Guard Swap,4,14,0,10,,0,10,1,245,,3,,16 -386,Punishment,4,17,60,5,100,0,10,2,246,,4,,23 -387,Last Resort,4,1,130,5,100,0,10,2,247,,3,,21 +386,Punishment,4,17,1,5,100,0,10,2,246,,4,,23 +387,Last Resort,4,1,140,5,100,0,10,2,247,,3,,21 388,Worry Seed,4,12,0,10,100,0,10,1,248,,2,,19 389,Sucker Punch,4,17,80,5,100,1,10,2,249,,4,,1 390,Toxic Spikes,4,4,0,20,,0,6,1,250,,4,,13 @@ -407,7 +407,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 406,Dragon Pulse,4,16,90,10,100,0,10,3,1,,4,,4 407,Dragon Rush,4,16,100,10,75,0,10,2,32,20,1,,18 408,Power Gem,4,6,70,20,100,0,10,3,1,,2,,5 -409,Drain Punch,4,2,60,5,100,0,10,2,4,,2,,20 +409,Drain Punch,4,2,75,10,100,0,10,2,4,,2,,20 410,Vacuum Wave,4,2,40,30,100,1,10,3,104,,4,,1 411,Focus Blast,4,2,120,5,70,0,10,3,73,10,1,,17 412,Energy Ball,4,12,80,10,100,0,10,3,73,10,2,,17 @@ -461,7 +461,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_ 460,Spacial Rend,4,16,100,5,95,0,10,3,44,,5,,4 461,Lunar Dance,4,14,0,10,,0,7,1,271,,2,,8 462,Crush Grip,4,1,1,5,100,0,10,2,238,,5,,15 -463,Magma Storm,4,10,120,5,70,0,10,3,43,100,5,,7 +463,Magma Storm,4,10,120,5,75,0,10,3,43,100,5,,7 464,Dark Void,4,17,0,10,80,0,11,1,2,,4,,19 465,Seed Flare,4,12,120,5,85,0,10,3,272,40,1,,22 466,Ominous Wind,4,8,60,5,100,0,10,3,141,10,4,,11 diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index ab4c671..965cf6b 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -672,6 +672,20 @@ class Move(TableBase): super_contest_effect_id = Column(Integer, ForeignKey('super_contest_effects.id'), nullable=True, info=dict(description="ID of the move's Super Contest effect")) +class MoveChangelog(TableBase): + """History of changes to moves across main game versions.""" + __tablename__ = 'move_changelog' + move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False, + info=dict(description="ID of the move that changed")) + changed_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False, + info=dict(description="ID of the version group in which the move changed")) + power = Column(SmallInteger, nullable=True, + info=dict(description="Prior base power of the move, or NULL if unchanged")) + pp = Column(SmallInteger, nullable=True, + info=dict(description="Prior base PP of the move, or NULL if unchanged")) + accuracy = Column(SmallInteger, nullable=True, + info=dict(description="Prior accuracy of the move, or NULL if unchanged")) + class Nature(TableBase): u"""A nature a pokémon can have, such as Calm or Brave """ @@ -1351,6 +1365,10 @@ LocationInternalID.generation = relation(Generation) Machine.item = relation(Item) Machine.version_group = relation(VersionGroup) +Move.changelog = relation(MoveChangelog, + order_by=MoveChangelog.changed_in_version_group_id.asc(), + backref='move', +) Move.contest_effect = relation(ContestEffect, backref='moves') Move.contest_combo_next = association_proxy('contest_combo_first', 'second') Move.contest_combo_prev = association_proxy('contest_combo_second', 'first') @@ -1372,6 +1390,8 @@ Move.type = relation(Type, backref='moves') Move.effect = markdown.MoveEffectProperty('effect') Move.short_effect = markdown.MoveEffectProperty('short_effect') +MoveChangelog.changed_in = relation(VersionGroup, backref='move_changelog') + MoveEffect.category_map = relation(MoveEffectCategoryMap) MoveEffect.categories = association_proxy('category_map', 'category') MoveEffectCategoryMap.category = relation(MoveEffectCategory)