Add the SpecialEncounter table, along with SpecialEncounterType

and SpecialEncounterVersion
This commit is contained in:
Petr Viktorin 2011-09-24 23:54:57 +03:00
parent e0ccad23aa
commit 538bc8ea5f
6 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,9 @@
special_encounter_type_id,local_language_id,name
1,9,Starting Pokémon
2,9,Gift
3,9,Fossil
4,9,Overworld
5,9,Purchase
6,9,Trade
7,9,Prize
8,9,Snag
1 special_encounter_type_id local_language_id name
2 1 9 Starting Pokémon
3 2 9 Gift
4 3 9 Fossil
5 4 9 Overworld
6 5 9 Purchase
7 6 9 Trade
8 7 9 Prize
9 8 9 Snag

View file

@ -0,0 +1,9 @@
id,identifier
1,starter
2,gift
3,fossil
4,overworld
5,purchase
6,trade
7,prize
8,snag
1 id identifier
2 1 starter
3 2 gift
4 3 fossil
5 4 overworld
6 5 purchase
7 6 trade
8 7 prize
9 8 snag

View file

@ -0,0 +1 @@
special_encounter_id,version_id
1 special_encounter_id version_id

View file

@ -0,0 +1 @@
id,type_id,event_pokemon_id,location_area_id,roam_region_id,cost,traded_species_id,traded_gender_id
1 id type_id event_pokemon_id location_area_id roam_region_id cost traded_species_id traded_gender_id

View file

@ -0,0 +1 @@
trainer_id,local_language_id,name
1 trainer_id local_language_id name

View file

@ -1516,6 +1516,56 @@ create_translation_table('region_names', Region, 'names',
info=dict(description="The name", format='plaintext', official=True)),
)
class SpecialEncounter(TableBase):
u"""Special in-game encounters with pokémon: trades, prizes, fossils, etc.
"""
__tablename__ = 'special_encounters'
id = Column(Integer, primary_key=True, nullable=False,
info=dict(description=u"A numeric ID"))
type_id = Column(Integer, ForeignKey('special_encounter_types.id'), nullable=False,
info=dict(description=u"Type of the encounter"))
event_pokemon_id = Column(Integer, ForeignKey('event_pokemon.id'), nullable=False,
info=dict(description=u"The pokémon encountered"))
location_area_id = Column(Integer, ForeignKey('location_areas.id'), nullable=True,
info=dict(description=u"The location of the encounter, if specific"))
roam_region_id = Column(Integer, ForeignKey('regions.id'), nullable=True,
info=dict(description=u"The region, if roaming"))
cost = Column(Integer, nullable=True,
info=dict(description=u"The cost, in game money or coints, if applicable"))
traded_species_id = Column(Integer, ForeignKey('pokemon_species.id'), nullable=True,
info=dict(description=u"The species the player needs to offer in trade, if applicable"))
traded_gender_id = Column(Integer, ForeignKey('genders.id'), nullable=True,
info=dict(description=u"The gender of the pokémon the player needs to offer in trade, if applicable"))
class SpecialEncounterType(TableBase):
u"""Type of a special in-game encounter
"""
__tablename__ = 'special_encounter_types'
__singlename__ = 'special_encounter_type'
id = Column(Integer, primary_key=True, nullable=False,
info=dict(description=u"A numeric ID"))
identifier = Column(Unicode(16), nullable=False,
info=dict(description=u"An identifier", format='identifier'))
create_translation_table('special_encounter_type_names', SpecialEncounterType, 'names',
relation_lazy='joined',
name = Column(Unicode(16), nullable=False, index=True,
info=dict(description="The name", format='plaintext', official=False)),
)
class SpecialEncounterVersion(TableBase):
u"""Maps special encounters to the versions they occur in
"""
__tablename__ = 'special_encounter_versions'
special_encounter_id = Column(Integer, ForeignKey('special_encounters.id'), primary_key=True, nullable=False, autoincrement=False,
info=dict(description=u"The encounter"))
version_id = Column(Integer, ForeignKey('versions.id'), primary_key=True, nullable=False, autoincrement=False,
info=dict(description=u"The version"))
class Stat(TableBase):
u"""A Stat, such as Attack or Speed
"""
@ -2147,9 +2197,32 @@ Region.version_group_regions = relationship(VersionGroupRegion,
Region.version_groups = association_proxy('version_group_regions', 'version_group')
SpecialEncounter.type = relationship(SpecialEncounterType,
backref='encounters')
SpecialEncounter.event_pokemon = relationship(EventPokemon,
backref='encounters')
SpecialEncounter.location_area = relationship(LocationArea,
backref='special_encounters')
SpecialEncounter.roam_region = relationship(Region,
backref='roam_encounters')
SpecialEncounter.traded_species = relationship(PokemonSpecies,
backref='possible_in_game_trades')
SpecialEncounter.traded_gender = relationship(Gender)
SpecialEncounter.versions = relationship(Version,
secondary=SpecialEncounterVersion.__table__,
primaryjoin=SpecialEncounterVersion.special_encounter_id == SpecialEncounter.id,
secondaryjoin=SpecialEncounterVersion.version_id == Version.id,
backref='special_encounters')
SpecialEncounterVersion.encounter = relationship(SpecialEncounter)
SpecialEncounterVersion.version = relationship(Version)
Stat.damage_class = relationship(MoveDamageClass,
backref='stats')
StatHint.stat = relationship(Stat,
innerjoin=True,
backref='hints')