# HG changeset patch # User KarstenBock@gmx.net # Date 1320500532 -3600 # Node ID 741d7d193bad2f655b660660635d4f8a089103cb # Parent 76041ed90a5d46f891128bcc7f63df0db678f7b3 Changed CharacterStatistic classes to work with components. diff -r 76041ed90a5d -r 741d7d193bad charactercreationcontroller.py --- a/charactercreationcontroller.py Wed Oct 26 13:01:49 2011 +0200 +++ b/charactercreationcontroller.py Sat Nov 05 14:42:12 2011 +0100 @@ -89,12 +89,12 @@ def reset_character(self): # FIXME M. George Hansen 2011-06-06: character stats scripts aren't # finished, unfortunately. -# primary_stats_file = \ -# vfs.VFS.open('character_scripts/primary_stats.xml') -# primary_stats = XmlSerializer.deserialize(primary_stats_file) -# secondary_stats_file = \ -# vfs.VFS.open('character_scripts/secondary_stats.xml') -# secondary_stats = XmlSerializer.deserialize(secondary_stats_file) + #primary_stats_file = \ + # vfs.VFS.open('character_scripts/primary_stats.xml') + #primary_stats = XmlSerializer.deserialize(primary_stats_file) + #secondary_stats_file = \ + # vfs.VFS.open('character_scripts/secondary_stats.xml') + #secondary_stats = XmlSerializer.deserialize(secondary_stats_file) primary_stats = [] secondary_stats = [] inventory = [] @@ -110,15 +110,18 @@ self.PICTURES[self.GENDERS[0]][0] ) for primary_stat in primary_stats: - short_name = primary_stat.short_name - self.char_data.characterstats.primary_stats[short_name] = ( + long_name = primary_stat.long_name + self.char_data.characterstats.primary_stats[long_name] = ( char_stats.PrimaryStatisticValue( - primary_stat, self, DEFAULT_STAT_VALUE) + primary_stat, self.char_data.characterstats, + DEFAULT_STAT_VALUE) ) for secondary_stat in secondary_stats: name = secondary_stat.name self.char_data.characterstats.secondary_stats[name] = ( - char_stats.SecondaryStatisticValue(secondary_stat, self) + char_stats.SecondaryStatisticValue(secondary_stat, + self.char_data. + characterstats) ) self.char_data.container.max_bulk = self.MAX_BULK self.char_data.container.children = inventory diff -r 76041ed90a5d -r 741d7d193bad characterstatistics.py --- a/characterstatistics.py Wed Oct 26 13:01:49 2011 +0200 +++ b/characterstatistics.py Sat Nov 05 14:42:12 2011 +0100 @@ -19,6 +19,8 @@ from .serializers import SerializableRegistry +from components import character_statistics + class AbstractCharacterStatistic(object): __metaclass__ = ABCMeta @@ -144,7 +146,8 @@ character = self.character() value = sum( - character.statistics[name].value * modifier for name, modifier in + character_statistics.get_statistic(character, name).value * + modifier for name, modifier in stat_modifiers.items() ) assert 0 <= value <= 100 diff -r 76041ed90a5d -r 741d7d193bad components/character_statistics.py --- a/components/character_statistics.py Wed Oct 26 13:01:49 2011 +0200 +++ b/components/character_statistics.py Sat Nov 05 14:42:12 2011 +0100 @@ -26,4 +26,16 @@ fields = self.fields.keys() fields.remove("primary_stats") fields.remove("secondary_stats") - return fields \ No newline at end of file + return fields + +def get_statistic(stats, name): + """Gets the statistic by its name""" + if name in stats.primary_stats: + return stats.primary_stats[name] + elif name in stats.secondary_stats: + return stats.secondary_stats[name] + else: + for stat in stats.primary_stats: + if stat.statistic_type.short_name == name: + return stat + return None \ No newline at end of file