From 707b34fb8f99f688005eb49c1cc85edd3df1dbf2 Mon Sep 17 00:00:00 2001 From: "Lynn \"Zhorken\" Vaughan" Date: Fri, 3 Aug 2012 13:03:56 -0400 Subject: [PATCH] Add Conquest move info. --- pokedex/data/csv/conquest_move_data.csv | 124 ++++++++++++++++++ .../data/csv/conquest_move_displacements.csv | 5 + pokedex/data/csv/conquest_move_effects.csv | 70 ++++++++++ pokedex/data/csv/conquest_move_ranges.csv | 22 ++++ pokedex/db/tables.py | 72 ++++++++++ 5 files changed, 293 insertions(+) create mode 100644 pokedex/data/csv/conquest_move_data.csv create mode 100644 pokedex/data/csv/conquest_move_displacements.csv create mode 100644 pokedex/data/csv/conquest_move_effects.csv create mode 100644 pokedex/data/csv/conquest_move_ranges.csv diff --git a/pokedex/data/csv/conquest_move_data.csv b/pokedex/data/csv/conquest_move_data.csv new file mode 100644 index 0000000..f014a0d --- /dev/null +++ b/pokedex/data/csv/conquest_move_data.csv @@ -0,0 +1,124 @@ +move_id,power,accuracy,effect_chance,effect_id,range_id,displacement_id +1,26,100,,60,2, +2,31,100,,9,2, +3,10,90,,14,2, +17,31,100,,60,2, +22,24,100,,60,7, +29,39,100,30,44,2, +33,31,100,,60,2, +34,45,100,30,37,11,1 +40,12,100,30,39,3, +41,26,100,20,68,3, +44,36,100,30,44,2, +52,26,100,10,41,11, +53,45,100,10,41,4, +55,24,100,,60,3, +56,51,80,,60,4, +58,45,100,10,42,4, +59,51,70,10,42,16, +60,35,100,10,43,4, +61,38,100,10,33,17, +67,31,90,,60,2, +71,20,100,,21,2, +72,26,100,50,21,2, +75,31,95,,9,4, +80,41,100,,64,5, +82,40,75,,0,3, +83,12,85,,15,14, +84,24,100,10,37,3, +85,45,100,10,37,15, +87,51,70,30,37,12, +91,41,100,,16,11, +93,29,100,10,43,12, +94,44,100,10,30,13, +95,,60,100,38,3, +98,31,100,,60,2, +100,,,,22,1, +122,14,100,30,37,2, +126,51,85,10,41,19, +136,65,90,,26,11,1 +138,48,100,,67,2, +145,20,100,10,33,3, +150,,,,60,1, +154,10,90,,14,2, +157,41,90,30,44,4, +158,43,90,10,44,2, +163,41,100,,9,2, +172,32,100,10,62,11,1 +181,24,100,10,42,3, +185,36,,,52,2, +188,44,100,30,39,18, +189,17,100,100,36,3, +196,34,95,100,58,7, +200,41,100,,64,5, +209,39,100,30,37,2, +210,12,95,,3,7, +231,45,75,30,30,7,4 +232,31,95,10,28,2, +238,45,80,,9,10, +242,43,100,20,30,2, +247,43,100,20,30,11, +248,45,100,,18,16, +276,55,100,100,59,2,4 +301,18,90,,3,11,1 +304,44,100,,60,6, +305,31,100,30,40,2, +309,48,85,20,28,2,4 +310,20,100,30,44,2,4 +317,31,80,100,58,11, +337,43,100,,60,2, +342,29,100,10,66,7, +344,58,100,10,63,15,1 +348,45,100,,9,2, +350,10,90,,14,11, +352,36,100,20,43,3, +358,36,100,,65,2, +360,18,100,,6,11,1 +362,35,100,,48,3, +372,31,100,,7,2, +395,31,100,30,37,2,4 +396,45,,,52,11,4 +398,43,100,30,39,2, +400,38,100,,9,7, +401,44,90,,60,7,4 +404,41,100,,60,10, +406,44,100,,60,4, +407,45,75,20,44,13,2 +413,58,100,,25,8,1 +414,44,100,10,30,9, +418,26,100,,60,2, +424,39,95,10,61,2, +425,26,100,,60,2, +426,39,85,30,36,11, +427,38,100,,9,3, +430,41,100,10,30,9, +435,41,100,30,37,6, +437,52,90,100,29,6, +439,58,90,,23,12, +440,38,100,10,66,10, +442,43,100,30,44,2,4 +444,45,80,,9,9, +449,55,100,,60,6, +450,36,100,,51,2, +459,58,90,,23,21, +473,43,100,,60,11, +474,35,100,,49,15, +481,38,100,,60,18, +486,26,100,,5,11, +492,47,100,,8,2, +506,31,100,,2,2, +507,36,100,,17,2, +510,28,100,,47,4, +521,41,100,,19,11,3 +523,33,100,100,58,5, +525,33,90,,20,7,4 +529,41,95,,9,11,1 +533,45,100,,4,2, +535,43,100,,60,11,1 +539,42,95,40,36,5, +540,45,100,,60,20, +541,23,85,,14,7, +550,57,85,20,37,2,4 +551,55,85,20,41,9, +552,41,100,50,28,13,2 +556,45,90,30,44,11, diff --git a/pokedex/data/csv/conquest_move_displacements.csv b/pokedex/data/csv/conquest_move_displacements.csv new file mode 100644 index 0000000..f7ce2bf --- /dev/null +++ b/pokedex/data/csv/conquest_move_displacements.csv @@ -0,0 +1,5 @@ +id,identifier,affects_target +1,advance-1,0 +2,advance-2,0 +3,switch-back,0 +4,knockback,1 diff --git a/pokedex/data/csv/conquest_move_effects.csv b/pokedex/data/csv/conquest_move_effects.csv new file mode 100644 index 0000000..e18e366 --- /dev/null +++ b/pokedex/data/csv/conquest_move_effects.csv @@ -0,0 +1,70 @@ +id +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 diff --git a/pokedex/data/csv/conquest_move_ranges.csv b/pokedex/data/csv/conquest_move_ranges.csv new file mode 100644 index 0000000..c2f4335 --- /dev/null +++ b/pokedex/data/csv/conquest_move_ranges.csv @@ -0,0 +1,22 @@ +id,identifier +1,user +2,tile-1-ahead +3,column-2-tiles +4,column-3-tiles +5,diamond-adjacent +6,ring-adjacent +7,row +8,chevron +9,plus +10,x-shape +11,tile-2-ahead +12,tile-3-ahead +13,diamond-2-ahead +14,ring-2-ahead +15,row-2-ahead +16,2-rows-2-ahead +17,column-2-ahead +18,x-shape-2-ahead +19,dai +20,t-shape +21,2-rows diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index afbb0b5..99e7155 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -247,6 +247,69 @@ class ConquestMaxLink(TableBase): max_link = Column(Integer, nullable=False, info=dict(description='The maximum link percentage this warrior rank and Pokémon can reach.')) +class ConquestMoveData(TableBase): + u"""Data about a move in Pokémon Conquest. + """ + __tablename__ = 'conquest_move_data' + move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, autoincrement=False, + info=dict(description=u'The ID of the move.')) + power = Column(Integer, nullable=True, + info=dict(description=u"The move's power, null if it does no damage.")) + accuracy = Column(Integer, nullable=True, + info=dict(description=u"The move's base accuracy, null if it is self-targetted or never misses.")) + effect_chance = Column(Integer, nullable=True, + info=dict(description=u"The chance as a percentage that the move's secondary effect will trigger.")) + effect_id = Column(Integer, ForeignKey('conquest_move_effects.id'), nullable=False, + info=dict(description=u"The ID of the move's effect.")) + range_id = Column(Integer, ForeignKey('conquest_move_ranges.id'), nullable=False, + info=dict(description=u"The ID of the move's range.")) + displacement_id = Column(Integer, ForeignKey('conquest_move_displacements.id'), nullable=True, + info=dict(description=u"The ID of the move's displacement.")) + + @property + def star_rating(self): + """Return the move's in-game power rating as a number of stars.""" + if not self.power: + return 0 + else: + stars = (self.power - 1) // 10 + stars = min(stars, 5) # i.e. maximum of 5 stars + stars = max(stars, 1) # And minimum of 1 + return stars + +class ConquestMoveEffect(TableBase): + u"""An effect moves can have in Pokémon Conquest. + """ + __tablename__ = 'conquest_move_effects' + __singlename__ = 'conquest_move_effect' + id = Column(Integer, primary_key=True, autoincrement=True, + info=dict(description=u'An ID for this effect.')) + +class ConquestMoveRange(TableBase): + u"""A range moves can have in Pokémon Conquest.""" + __tablename__ = 'conquest_move_ranges' + __singlename__ = 'conquest_move_range' + id = Column(Integer, primary_key=True, autoincrement=True, + info=dict(description=u'An ID for this range.')) + identifier = Column(Unicode(16), nullable=False, + info=dict(description=u'A readable identifier for this range.')) + +class ConquestMoveDisplacement(TableBase): + u"""A way in which a move can cause the user or target to move to a + different tile. + + If a move displaces its user, the move's range is relative to the user's + original position. + """ + __tablename__ = 'conquest_move_displacements' + __singlename__ = 'move_displacement' + id = Column(Integer, primary_key=True, autoincrement=True, + info=dict(description=u'An ID for this displacement.')) + identifier = Column(Unicode(11), nullable=False, + info=dict(description=u'A readable identifier for this displacement.')) + affects_target = Column(Boolean, nullable=False, + info=dict(description=u'True iff the move displaces its target(s) and not its user.')) + class ConquestPokemonAbility(TableBase): u"""An ability a Pokémon species has in Pokémon Conquest. """ @@ -1961,6 +2024,15 @@ ConquestMaxLink.warrior_rank = relationship(ConquestWarriorRank, backref=backref('max_links', lazy='dynamic')) ConquestMaxLink.warrior = association_proxy('warrior_rank', 'warrior') +ConquestMoveData.effect = relationship(ConquestMoveEffect, + uselist=False, + innerjoin=True, lazy='joined', + backref='moves') +ConquestMoveData.move = relationship(Move, + uselist=False, + innerjoin=True, lazy='joined', + backref='conquest_data') + ConquestPokemonEvolution.gender = relationship(Gender, backref='conquest_evolutions') ConquestPokemonEvolution.item = relationship(Item,