mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Link stats to damage classes.
This commit is contained in:
parent
b1691804c1
commit
409b16e8ee
2 changed files with 31 additions and 8 deletions
|
@ -1,7 +1,7 @@
|
||||||
id,name
|
id,damage_class_id,name
|
||||||
1,HP
|
1,,HP
|
||||||
2,Attack
|
2,2,Attack
|
||||||
3,Defense
|
3,2,Defense
|
||||||
4,Special Attack
|
4,3,Special Attack
|
||||||
5,Special Defense
|
5,3,Special Defense
|
||||||
6,Speed
|
6,,Speed
|
||||||
|
|
|
|
@ -492,6 +492,26 @@ class Pokemon(TableBase):
|
||||||
if pokemon_stat.stat.name == stat_name:
|
if pokemon_stat.stat.name == stat_name:
|
||||||
return pokemon_stat
|
return pokemon_stat
|
||||||
|
|
||||||
|
raise KeyError(u'No stat named %s' % stat_name)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def better_damage_class(self):
|
||||||
|
u"""Returns the MoveDamageClass that this Pokémon is best suited for,
|
||||||
|
based on its attack stats.
|
||||||
|
|
||||||
|
If the attack stats are about equal (within 5), returns None. The
|
||||||
|
value None, not the damage class called 'None'.
|
||||||
|
"""
|
||||||
|
phys = self.stat(u'Attack')
|
||||||
|
spec = self.stat(u'Special Attack')
|
||||||
|
|
||||||
|
diff = phys.base_stat - spec.base_stat
|
||||||
|
|
||||||
|
if diff > 5:
|
||||||
|
return phys.stat.damage_class
|
||||||
|
elif diff < -5:
|
||||||
|
return spec.stat.damage_class
|
||||||
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
class PokemonAbility(TableBase):
|
class PokemonAbility(TableBase):
|
||||||
|
@ -614,6 +634,7 @@ class Region(TableBase):
|
||||||
class Stat(TableBase):
|
class Stat(TableBase):
|
||||||
__tablename__ = 'stats'
|
__tablename__ = 'stats'
|
||||||
id = Column(Integer, primary_key=True, nullable=False)
|
id = Column(Integer, primary_key=True, nullable=False)
|
||||||
|
damage_class_id = Column(Integer, ForeignKey('move_damage_classes.id'), nullable=True)
|
||||||
name = Column(Unicode(16), nullable=False)
|
name = Column(Unicode(16), nullable=False)
|
||||||
|
|
||||||
class SuperContestCombo(TableBase):
|
class SuperContestCombo(TableBase):
|
||||||
|
@ -883,6 +904,8 @@ Region.version_group_regions = relation(VersionGroupRegion, backref='region',
|
||||||
order_by='VersionGroupRegion.version_group_id')
|
order_by='VersionGroupRegion.version_group_id')
|
||||||
Region.version_groups = association_proxy('version_group_regions', 'version_group')
|
Region.version_groups = association_proxy('version_group_regions', 'version_group')
|
||||||
|
|
||||||
|
Stat.damage_class = relation(MoveDamageClass, backref='stats')
|
||||||
|
|
||||||
SuperContestCombo.first = relation(Move, primaryjoin=SuperContestCombo.first_move_id==Move.id,
|
SuperContestCombo.first = relation(Move, primaryjoin=SuperContestCombo.first_move_id==Move.id,
|
||||||
backref='super_contest_combo_first')
|
backref='super_contest_combo_first')
|
||||||
SuperContestCombo.second = relation(Move, primaryjoin=SuperContestCombo.second_move_id==Move.id,
|
SuperContestCombo.second = relation(Move, primaryjoin=SuperContestCombo.second_move_id==Move.id,
|
||||||
|
|
Loading…
Reference in a new issue