+ identifier = Column(Unicode(8), nullable=False,
+ info=dict(description="An identifier", format='identifier'))
+
+create_translation_table('move_battle_style_prose', MoveBattleStyle, 'prose',
+ relation_lazy='joined',
+ name = Column(Unicode(8), nullable=False, index=True,
+ info=dict(description="The name", format='plaintext', official=False)),
+)
+
+class MoveChangelog(TableBase):
+ """History of changes to moves across main game versions."""
+ __tablename__ = 'move_changelog'
+ __singlename__ = '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"))
+ type_id = Column(Integer, ForeignKey('types.id'), nullable=True,
+ info=dict(description="Prior type of the move, or NULL if unchanged"))
+ 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"))
+ effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=True,
+ info=dict(description="Prior ID of the effect, or NULL if unchanged"))
+ effect_chance = Column(Integer, nullable=True,
+ info=dict(description="Prior effect chance, or NULL if unchanged"))
+
+class MoveDamageClass(TableBase):
+ u"""Any of the damage classes moves can have, i.e. physical, special, or non-damaging.
+ """
+ __tablename__ = 'move_damage_classes'
+ __singlename__ = 'move_damage_class'
+ id = Column(Integer, primary_key=True, nullable=False,
+ info=dict(description="A numeric ID"))
+ identifier = Column(Unicode(16), nullable=False,
+ info=dict(description="An identifier", format='identifier'))
+
+create_translation_table('move_damage_class_prose', MoveDamageClass, 'prose',
+ relation_lazy='joined',
+ name = Column(Unicode(16), nullable=False, index=True,
+ info=dict(description="The name", format='plaintext', official=False)),
+ description = Column(Unicode(64), nullable=False,
+ info=dict(description="A description of the class", format='plaintext')),
+)
+
+class MoveEffect(TableBase):
+ u"""An effect of a move
+ """
+ __tablename__ = 'move_effects'
+ __singlename__ = 'move_effect'
+ id = Column(Integer, primary_key=True, nullable=False,
+ info=dict(description="A numeric ID"))
+
+create_translation_table('move_effect_prose', MoveEffect, 'prose',
+ short_effect = Column(Unicode(256), nullable=False,
+ info=dict(description="A short summary of the effect", format='plaintext')),
+ effect = Column(Unicode(5120), nullable=False,
+ info=dict(description="A detailed description of the effect", format='plaintext')),
+)