info=dict(description=u"Power of the move Fling when used with this item."))
fling_effect_id = Column(Integer, ForeignKey('item_fling_effects.id'), nullable=True,
info=dict(description=u"ID of the fling-effect of the move Fling when used with this item. Note that these are different from move effects."))
+ short_effect = Column(Unicode(256), nullable=False,
+ info=dict(description="A short summary of the effect", format='plaintext'))
effect = Column(markdown.MarkdownColumn(5120), nullable=False,
info=dict(description=u"Detailed English description of the item's effect.", format='markdown'))
effect = Column(Unicode(5120), nullable=False,
info=dict(description="A detailed description of the effect", format='plaintext'))
+class MoveEffectChangelog(TableBase):
+ """History of changes to move effects across main game versions."""
+ __tablename__ = 'move_effect_changelog'
+ effect_id = Column(Integer, ForeignKey('move_effects.id'), primary_key=True, nullable=False,
+ info=dict(description="The ID of the effect that changed"))
+ changed_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False,
+ info=dict(description="The ID of the version group in which the effect changed"))
+ effect = Column(markdown.MarkdownColumn(255), nullable=False,
+ info=dict(description="A description of the old behavior", format='markdown'))
+
class MoveFlag(TableBase):
u"""Maps a move flag to a move
"""
info=dict(description="ID of the damage class (physical/special) of the move"))
effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=False,
info=dict(description="ID of the move's effect"))
- effect_chance = Column(Integer, nullable=True
+ effect_chance = Column(Integer, nullable=True,
info=dict(description="The chance for a secondary effect. What this is a chance of is specified by the move's effect."))
contest_type_id = Column(Integer, ForeignKey('contest_types.id'), nullable=True,
info=dict(description="ID of the move's Contest type (e.g. cool or smart)"))
Ability.flavor_text = relation(AbilityFlavorText, order_by=AbilityFlavorText.version_group_id, backref='ability')
Ability.foreign_names = relation(AbilityName, backref='ability')
Ability.generation = relation(Generation, backref='abilities')
+Ability.all_pokemon = relation(Pokemon,
+ secondary=PokemonAbility.__table__,
+ back_populates='all_abilities',
+)
Ability.pokemon = relation(Pokemon,
secondary=PokemonAbility.__table__,
+ primaryjoin=and_(
+ PokemonAbility.ability_id == Ability.id,
+ PokemonAbility.is_dream == False
+ ),
+ back_populates='abilities',
+)
+Ability.dream_pokemon = relation(Pokemon,
+ secondary=PokemonAbility.__table__,
+ primaryjoin=and_(
+ PokemonAbility.ability_id == Ability.id,
+ PokemonAbility.is_dream == True
+ ),
+ back_populates='dream_ability',
)
AbilityChangelog.changed_in = relation(VersionGroup, backref='ability_changelog')
PokemonMove.move = relation(Move, backref='pokemon_moves')
PokemonMove.method = relation(PokemonMoveMethod)
-PokemonName.language = relation(Language)
+PokemonName.language = relation(Language, lazy='joined')
PokemonStat.stat = relation(Stat)