X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/23cb236c2aa004effae360e84d6bc7454660286f..e1255ba7fe94ba8f87dd833bcf9948893a6d79dc:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index cdddd30..1bbab38 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -283,15 +283,6 @@ class EncounterSlot(TableBase): rarity = Column(Integer, nullable=False, info=dict(description="The chance of the encounter as a percentage")) -class EncounterSlotCondition(TableBase): - u"""A condition that affects an encounter slot. - """ - __tablename__ = 'encounter_slot_conditions' - encounter_slot_id = Column(Integer, ForeignKey('encounter_slots.id'), primary_key=True, nullable=False, autoincrement=False, - info=dict(description="The ID of the encounter slot")) - encounter_condition_id = Column(Integer, ForeignKey('encounter_conditions.id'), primary_key=True, nullable=False, autoincrement=False, - info=dict(description="The ID of the encounter condition")) - class EvolutionChain(TableBase): u"""A family of Pokémon that are linked by evolution """ @@ -838,16 +829,20 @@ class Pokemon(TableBase): info=dict(description=u"True iff the Pokémon is a baby, i.e. a lowest-stage Pokémon that cannot breed but whose evolved form can.")) hatch_counter = Column(Integer, nullable=False, info=dict(description=u"Initial hatch counter: one must walk 255 × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's")) - has_gen4_fem_sprite = Column(Boolean, nullable=False, - info=dict(description=u"Set iff the species' female front sprite is different from the male's in generation IV")) - has_gen4_fem_back_sprite = Column(Boolean, nullable=False, - info=dict(description=u"Set iff the species' female back sprite is different from the male's in generation IV")) + has_gender_differences = Column(Boolean, nullable=False, + info=dict(description=u"Set iff the species exhibits enough sexual dimorphism to have separate sets of sprites in Gen IV and beyond.")) order = Column(Integer, nullable=False, index=True, info=dict(description=u"Order for sorting. Almost national order, except families and forms are grouped together.")) ### Stuff to handle alternate Pokémon forms @property + def form(self): + u"""Returns the Pokémon's form, using its default form as fallback.""" + + return self.unique_form or self.default_form + + @property def is_base_form(self): u"""Returns True iff the Pokémon is the base form for its species, e.g. Land Shaymin. @@ -989,7 +984,7 @@ class PokemonEvolution(TableBase): info=dict(description=u"The ID of the location the evolution must be triggered at.")) held_item_id = Column(Integer, ForeignKey('items.id'), nullable=True, info=dict(description=u"The ID of the item the Pokémon must hold.")) - time_of_day = Column(Enum('morning', 'day', 'night', name='pokemon_evolution_time_of_day'), nullable=True, + time_of_day = Column(Enum('day', 'night', name='pokemon_evolution_time_of_day'), nullable=True, info=dict(description=u"The required time of day.")) known_move_id = Column(Integer, ForeignKey('moves.id'), nullable=True, info=dict(description=u"The ID of the move the Pokémon must know.")) @@ -1039,6 +1034,13 @@ class PokemonForm(TableBase): info=dict(description=u'The order in which forms should be sorted. Multiple forms may have equal order, in which case they should fall back on sorting by name.')) @property + def pokemon(self): + u"""Returns the Pokémon for this form, using the form base as fallback. + """ + + return self.unique_pokemon or self.form_base_pokemon + + @property def full_name(self): u"""Returns the full name of this form, e.g. "Plant Cloak".""" @@ -1366,11 +1368,7 @@ EncounterConditionValueMap.condition_value = relation(EncounterConditionValue, backref='encounter_map') EncounterSlot.terrain = relation(EncounterTerrain, backref='slots') - -EncounterSlot.condition_map = relation(EncounterSlotCondition, backref='slot') -EncounterSlot.conditions = association_proxy('condition_map', 'condition') -EncounterSlotCondition.condition = relation(EncounterCondition, - backref='slot_map') +EncounterSlot.version_group = relation(VersionGroup) EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains') EvolutionChain.baby_trigger_item = relation(Item, backref='evolution_chains')