X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/650e19ed2270b7ae9eeb135662725fc840579dab..3ee559684d0065e51a1ff8c99f2668b05a586136:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 8d7f3cf..9eb9dd9 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -363,6 +363,8 @@ class Item(TableBase): 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')) @@ -589,6 +591,16 @@ class MoveEffect(TableBase): 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 """ @@ -673,7 +685,7 @@ class Move(TableBase): 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)")) @@ -1296,8 +1308,25 @@ Ability.changelog = relation(AbilityChangelog, 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') @@ -1552,7 +1581,7 @@ PokemonMove.machine = relation(Machine, backref='pokemon_moves', 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)