X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/e82637bcd2128625b2efbb0eaeee7f90b9e7674e..5e9fd8f005f10a2c71f6fab672d9f781aa80065e:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index d4d42ff..eb521e1 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -162,6 +162,12 @@ class LocationArea(TableBase): internal_id = Column(Integer, nullable=False) name = Column(Unicode(64), nullable=True) +class LocationAreaEncounterRate(TableBase): + __tablename__ = 'location_area_encounter_rates' + location_area_id = Column(Integer, ForeignKey('location_areas.id'), primary_key=True, nullable=False, autoincrement=False) + encounter_type_id = Column(Integer, ForeignKey('encounter_types.id'), primary_key=True, nullable=False, autoincrement=False) + rate = Column(Integer, nullable=True) + class Machine(TableBase): __tablename__ = 'machines' machine_number = Column(Integer, primary_key=True, nullable=False, autoincrement=False) @@ -178,9 +184,26 @@ class MoveEffect(TableBase): __tablename__ = 'move_effects' id = Column(Integer, primary_key=True, nullable=False) priority = Column(SmallInteger, nullable=False) - short_effect = Column(Unicode(128), nullable=False) + short_effect = Column(Unicode(256), nullable=False) effect = Column(Unicode(5120), nullable=False) +class MoveFlag(TableBase): + __tablename__ = 'move_flags' + move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False, autoincrement=False) + move_flag_type_id = Column(Integer, ForeignKey('move_flag_types.id'), primary_key=True, nullable=False, autoincrement=False) + +class MoveFlagType(TableBase): + __tablename__ = 'move_flag_types' + id = Column(Integer, primary_key=True, nullable=False) + name = Column(Unicode(32), nullable=False) + description = Column(rst.RstTextColumn(128), nullable=False) + +class MoveName(TableBase): + __tablename__ = 'move_names' + move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False, autoincrement=False) + language_id = Column(Integer, ForeignKey('languages.id'), primary_key=True, nullable=False, autoincrement=False) + name = Column(Unicode(16), nullable=False) + class MoveTarget(TableBase): __tablename__ = 'move_targets' id = Column(Integer, primary_key=True, nullable=False) @@ -403,15 +426,22 @@ LocationArea.location = relation(Location, backref='areas') Machine.generation = relation(Generation) Move.damage_class = relation(MoveDamageClass, backref='moves') -Move.move_effect = relation(MoveEffect, backref='moves') +Move.flags = association_proxy('move_flags', 'flag') +Move.foreign_names = relation(MoveName, backref='pokemon') Move.generation = relation(Generation, backref='moves') Move.machines = relation(Machine, backref='move') +Move.move_effect = relation(MoveEffect, backref='moves') +Move.move_flags = relation(MoveFlag, backref='move') Move.target = relation(MoveTarget, backref='moves') Move.type = relation(Type, backref='moves') -Move.effect = rst.MoveEffectProperty() +Move.effect = rst.MoveEffectProperty('effect') Move.priority = association_proxy('move_effect', 'priority') -Move.short_effect = association_proxy('move_effect', 'short_effect') +Move.short_effect = rst.MoveEffectProperty('short_effect') + +MoveFlag.flag = relation(MoveFlagType) + +MoveName.language = relation(Language) Pokemon.abilities = relation(Ability, secondary=PokemonAbility.__table__, order_by=PokemonAbility.slot,