X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/afad84e435212d2b1a4b93c8791d9d6fc66a3043..6aabbcdbddc2ab8a286ea2af8c6b082ad9341545:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index d15cacf..8360079 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -177,7 +177,7 @@ class EvolutionChain(TableBase): __tablename__ = 'evolution_chains' id = Column(Integer, primary_key=True, nullable=False) growth_rate_id = Column(Integer, ForeignKey('growth_rates.id'), nullable=False) - baby_trigger_item = Column(Unicode(12)) + baby_trigger_item_id = Column(Integer, ForeignKey('items.id'), nullable=True) class EvolutionTrigger(TableBase): __tablename__ = 'evolution_triggers' @@ -293,6 +293,12 @@ class LocationAreaEncounterRate(TableBase): version_id = Column(Integer, ForeignKey('versions.id'), primary_key=True, autoincrement=False) rate = Column(Integer, nullable=True) +class LocationInternalID(TableBase): + __tablename__ = 'location_internal_ids' + location_id = Column(Integer, ForeignKey('locations.id'), nullable=False, primary_key=True) + generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False, primary_key=True) + internal_id = Column(Integer, nullable=False) + class Machine(TableBase): __tablename__ = 'machines' machine_number = Column(Integer, primary_key=True, nullable=False, autoincrement=False) @@ -342,6 +348,7 @@ class MoveFlag(TableBase): class MoveFlagType(TableBase): __tablename__ = 'move_flag_types' id = Column(Integer, primary_key=True, nullable=False) + identifier = Column(Unicode(16), nullable=False) name = Column(Unicode(32), nullable=False) description = Column(markdown.MarkdownColumn(128), nullable=False) @@ -391,6 +398,13 @@ class Nature(TableBase): hates_flavor_id = Column(Integer, ForeignKey('contest_types.id'), nullable=False) likes_flavor_id = Column(Integer, ForeignKey('contest_types.id'), nullable=False) + @property + def is_neutral(self): + u"""Returns True iff this nature doesn't alter a Pokémon's stats, + bestow taste preferences, etc. + """ + return self.increased_stat_id == self.decreased_stat_id + class NatureBattleStylePreference(TableBase): __tablename__ = 'nature_battle_style_preferences' nature_id = Column(Integer, ForeignKey('natures.id'), primary_key=True, nullable=False) @@ -681,6 +695,12 @@ class Type(TableBase): generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False) damage_class_id = Column(Integer, ForeignKey('move_damage_classes.id'), nullable=False) ## ??? is none; everything else is physical or special +class TypeName(TableBase): + __tablename__ = 'type_names' + type_id = Column(Integer, ForeignKey('types.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 VersionGroup(TableBase): __tablename__ = 'version_groups' id = Column(Integer, primary_key=True, nullable=False) @@ -739,6 +759,7 @@ EncounterSlotCondition.condition = relation(EncounterCondition, backref='slot_map') EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains') +EvolutionChain.baby_trigger_item = relation(Item, backref='evolution_chains') Experience.growth_rate = relation(GrowthRate, backref='experience_table') @@ -763,6 +784,9 @@ ItemCategory.pocket = relation(ItemPocket) ItemFlavorText.version_group = relation(VersionGroup) +ItemInternalID.item = relation(Item, backref='internal_ids') +ItemInternalID.generation = relation(Generation) + ItemName.language = relation(Language) ItemPocket.categories = relation(ItemCategory, order_by=ItemCategory.name) @@ -771,6 +795,9 @@ Location.region = relation(Region, backref='locations') LocationArea.location = relation(Location, backref='areas') +LocationInternalID.location = relation(Location, backref='internal_ids') +LocationInternalID.generation = relation(Generation) + Machine.item = relation(Item) Machine.version_group = relation(VersionGroup) @@ -946,6 +973,9 @@ Type.target_efficacies = relation(TypeEfficacy, Type.generation = relation(Generation, backref='types') Type.damage_class = relation(MoveDamageClass, backref='types') +Type.foreign_names = relation(TypeName, backref='type') + +TypeName.language = relation(Language) Version.version_group = relation(VersionGroup, backref='versions') Version.generation = association_proxy('version_group', 'generation')