Use identifiers in Pokemon.stat

This commit is contained in:
Petr Viktorin 2011-09-02 21:01:53 +03:00
parent 2a73d371f7
commit d8d32a0176

View file

@ -1084,19 +1084,19 @@ class Pokemon(TableBase):
def name(self): def name(self):
return self.default_form.pokemon_name or self.species.name return self.default_form.pokemon_name or self.species.name
def stat(self, stat_name): def stat(self, stat_identifier):
u"""Returns a PokemonStat record for the given stat name (or Stat row u"""Returns a PokemonStat record for the given stat name (or Stat row
object). Uses the normal has-many machinery, so all the stats are object). Uses the normal has-many machinery, so all the stats are
effectively cached. effectively cached.
""" """
if isinstance(stat_name, Stat): if isinstance(stat_identifier, Stat):
stat_name = stat_name.name stat_identifier = stat_identifier.identifier
for pokemon_stat in self.stats: for pokemon_stat in self.stats:
if pokemon_stat.stat.name == stat_name: if pokemon_stat.stat.identifier == stat_identifier:
return pokemon_stat return pokemon_stat
raise KeyError(u'No stat named %s' % stat_name) raise KeyError(u'No stat named %s' % stat_identifier)
@property @property
def better_damage_class(self): def better_damage_class(self):
@ -1106,8 +1106,8 @@ class Pokemon(TableBase):
If the attack stats are about equal (within 5), returns None. The If the attack stats are about equal (within 5), returns None. The
value None, not the damage class called 'None'. value None, not the damage class called 'None'.
""" """
phys = self.stat(u'Attack') phys = self.stat(u'attack')
spec = self.stat(u'Special Attack') spec = self.stat(u'special-attack')
diff = phys.base_stat - spec.base_stat diff = phys.base_stat - spec.base_stat