Implement a move data changelog. Update old moves to their Gen V stats. #78
authorEevee <git@veekun.com>
Sat, 27 Nov 2010 09:25:38 +0000 (01:25 -0800)
committerEevee <git@veekun.com>
Wed, 1 Dec 2010 06:48:29 +0000 (22:48 -0800)
pokedex/data/csv/move_changelog.csv [new file with mode: 0644]
pokedex/data/csv/moves.csv
pokedex/db/tables.py

diff --git a/pokedex/data/csv/move_changelog.csv b/pokedex/data/csv/move_changelog.csv
new file mode 100644 (file)
index 0000000..f738b61
--- /dev/null
@@ -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
index a45e66e..eedbbe9 100644 (file)
@@ -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
index ab4c671..965cf6b 100644 (file)
@@ -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)